Networked Embedded Software: Programming. Luca Mottola Politecnico di Milano, Italy and SICS Swedish ICT (home.dei.polimi.
|
|
- Timothy Gibson
- 5 years ago
- Views:
Transcription
1 Networked Embedded Software: Programming Luca Mottola Politecnico di Milano, Italy and SICS Swedish ICT (home.dei.polimi.it/mottola)
2 Programming NES According to market research firms, the global market for NES will grow tenfold by 2020, however ease of programming is the current hampering factor and major technology enabler Programming mostly done ad-hoc at the OS level the largest coding effort devoted to communication distracts programmers from the application goal greatly hampers reuse: porting an application often requires substantial (if not complete) rewriting Fundamental problem: level of abstraction is too low
3 Level of abstraction? Cross-layer embedded software Mask complexity without sacrificing performance
4 Need for Cross-layer No radio duty-cycle Expected lifetime: ~8 days Naïve radio duty-cycle Expected lifetime: ~9 months
5 Operating Systems NES OSs often different from mainstream ones Basic run-time support for application programs No support for user interaction Programs cross-compiled and linked with the OS library Resulting binary deployed onto the node
6 nesc / TinyOS nesc provides the programming abstractions Component based programming TinyOS (TOS) manages scheduling and interactions with the hardware Split-phase execution Commands are executed, return value is asynchronously reported through an event
7 Uses Send nesc Components Components encapsulate state and processing Use or provide interfaces Interfaces list commands and events Configurations wire components together Calls sendmsg(msg) Provides Send Signals senddone() Function calls Using Providing Commands Call Command Implement Command Body Events Implement Event Handler Signal Event
8 nesc Example Provided by sensorspecific components module BlinkC { // uses interface Read<uint16_t> as ReadHumidity; implementation { // event void SenseTimer.fired() { call ReadHumidity.read(); event void ReadHumidity.readDone(error_t result, uint16_t val) { float humidity = *val+((-2.8)* )*(val*val) 4; if (humidity > 50) { // 0 On, 1 Off else { // 0 Off, 1 On interface Read<val_t>{ command error_t read(); event void readdone(error_t result, val_t val); val is the raw ADC value, it needs to be converted! Calls read() Signaled when the sensor gathered the reading Signals readdone()
9 Toolchain Complete inlining, detection of races Crosscompiled No linking
10 Middleware to the Rescue Tuple spaces proposed in the 80s (Linda) for parallel computation In TeenyLIME, each node hosts a tuple space shared with the nodes within range tuple space out(t) in(p) rd(p) < Italy, Milano > < Belgium, Leuven> < Italy, Trento>
11 Why Abstractions are Useful Maintains an array of current interests bool pendingmsg; TOS_Msg sendmsg; event TOS_MsgPtr ReceiveInterestMsg.receive(TOS_MsgPtr m) { struct InterestMsg* payload = (struct InterestMsg*) m->data; if (isrecipient(payload, TOS_LOCAL_ADDRESS)) insertinterest(payload->sender, payload->type, payload->threshold, payload->timestamp); return m; event result_t TemperatureSensor.dataReady(uint16_t reading){ Sends a message if at if (!pendingmsg && matchesinterest(reading)) { atomic { least one interest pendingmsg = TRUE; matches struct DataMsg* payload = (struct DataMsg*) sendmsg->data; msg->sender = TOS_LOCAL_ADDRESS; msg->type = TEMPERATURE_READING; Just msg->value outputs = a reading; tuple, all registered if reactions (call SendDataMsg.send(TOS_BCAST_ADDR,sizeof(struct will be triggered AppMsg),&sendMsg)!= SUCCESS) pendingmsg = FALSE; Data filtering and addressing return SUCCESS; event result_t TemperatureSensor.dataReady(uint16_t performed in the application reading){ code event result_t SendDataMsg.sendDone(TOS_MsgPtr tuple<uint16_t, msg, uint16_t> result_t temperaturevalue success) { = newtuple( if (msg == sendmsg) actualfield(temperature_reading), pendingmsg = FALSE; actualfield(reading)); return SUCCESS; call TupleSpace.out(FALSE,TL_LOCAL,&temperatureValue); return SUCCESS; Programming Wireless Sensor Networks 2008 Luca Mottola and Gian Pietro Picco
12 Problem WSNs inherently environment dependent The software must adapt Missing design and programming support
13 Example: Wildlife Tracking
14 module ReportLogs{ uses interface Collection; uses interface DataStore; implementation { int base_station_reachable = 0; event msg_t Beacon.receive(msg_t msg) { if (!acceleromenter_detects_activity()) return; if (call Battery.energy() <= THRESHOLD) return; base_station_reachable = 1; call GPS.stop() call BaseStationReset.stop(); call BaseStationReset.startOneShot(TIMEOUT); event void BaseStationReset.fired() { base_station_reachable = 0; event void ReportPeriod.fired() { switch (base_station_reachable){ case 0: call DataStore.deposit(msg); case 1: call Collection.send(msg);
15 Vol. 7, No. 3, March Aprile 2008 Context-oriented Programming Layered functions change the behavior depending on the context Lisp Java Context-oriented Programming Erlang Robert Hirschfeld, Hasso-Plattner-Institut, Universität Potsdam, Germany Pascal Costanza, Programming Technology Lab, Vrije Universiteit Brussel, Belgium Oscar Nierstrasz, Software Composition Group, Universität Bern, Switzerland Context-dependent behavior is becoming increasingly important for a wide range of application domains, from pervasive computing to common business applications. Unfortunately, mainstream programming languages do not provide mechanisms that enable software entities to adapt their behavior dynamically to the current execution Objective-C context. This leads developers to adopt convoluted designs to achieve the necessary runtime flexibility. We propose a new programming technique called Context-oriented Programming (COP) which addresses this problem. COP treats context explicitly, and provides mechanisms to dynamically adapt behavior in reaction to changes in context, even after system deployment at runtime. In this paper, we lay the foundations of COP, show how dynamic layer activation enables multi-dimensional dispatch, illustrate the application of COP by examples in several language extensions, and demonstrate that COP is largely independent of other commitments to programming style. 1 INTRODUCTION Contextual information is playing an increasingly important role for applications and services ranging from those that are location-based to those that are situationdependent or even deeply personalized. While context-awareness is already an integral part of regular business applications, it is becoming even more critical for mobile and ubiquitous computing, where devices must adapt their behavior to the services available in their current environment. Despite the fact that context is clearly a central notion to an emerging class of applications, there is little explicit support for context awareness in mainstream programming languages and runtime environments. This makes the development of these applications more complex than necessary. In this paper we argue the need for a new programming approach, called Context-oriented Programming (COP), which treats context explicitly and makes it accessible and manipulable by software. One di culty in proposing a concrete COP language is that context covers a wide range of concepts ranging from domain-specific to technology-dependent attributes, and including properties that may be spatial or temporal, or even based in hardware or software. We see personalization, sharing, location-awareness, ubiq- Python Cite this document as follows: Robert Hirschfeld, Pascal Costanza, and Oscar Nierstrasz: Context-oriented Programming, in Journal of Object Technology, vol. 7, no. 3, March Aprile 2008, pages , /article4
16 CoNesC: Example Base-station group call BaseStationG.report(msg); BS beacon received Reachable Unreachable on active: on active: send readings to the BS log locally timeout
17 CoNesC: Example Base-station group BS beacon received Reachable Unreachable on active: on active: send readings to the BS log locally timeout call BaseStationG.report(msg); activate BaseStationG.Reachable; //... activate BaseStationG.Unreachable;
18 CoNesC: Example Base-station group BS beacon received Reachable Unreachable on active: on active: send readings to the BS log locally timeout call BaseStationG.report(msg); activate BaseStationG.Reachable; //... activate BaseStationG.Unreachable; context Reachable { uses interface Collection; implementation { //... layered command void report(msg_t msg){ call Collection.send(msg); context Unreachable { uses interface DataStore; implementation { //... layered command void report(msg_t msg){ call DataStore.deposit(msg);
19 CoNesC: Example Base-station group BS beacon received Reachable Unreachable on active: on active: send readings to the BS log locally timeout call BaseStationG.report(msg); activate BaseStationG.Reachable; //... activate BaseStationG.Unreachable; context Reachable { uses interface Collection; implementation { //... layered command void report(msg_t msg){ call Collection.send(msg); context Unreachable { uses interface DataStore; implementation { //... layered command void report(msg_t msg){ call DataStore.deposit(msg);
20 CoNesC: Example Base-station group BS beacon received Reachable Unreachable on active: on active: send readings to the BS log locally timeout call BaseStationG.report(msg); activate BaseStationG.Reachable; //... activate BaseStationG.Unreachable; context Reachable { uses interface Collection; implementation { //... layered command void report(msg_t msg){ call Collection.send(msg); context Unreachable { uses interface DataStore; implementation { //... layered command void report(msg_t msg){ call DataStore.deposit(msg);
21 CoNesC: Example Base-station group BS beacon received Reachable Unreachable on active: on active: send readings to the BS log locally timeout call BaseStationG.report(msg); activate BaseStationG.Reachable; //... activate BaseStationG.Unreachable; context Reachable { uses interface Collection; implementation { //... layered command void report(msg_t msg){ call Collection.send(msg); context Unreachable { uses interface DataStore; implementation { //... layered command void report(msg_t msg){ call DataStore.deposit(msg); context group BaseStationG { layered command void report(msg_t msg); implementation { contexts Reachable, Unreachable is default, MyErrorC is error; components Routing, Logging; Reachable.Collection -> Routing; Unreachable.DataStore -> Logging;
22 Macro-programming
23 Example: ATaG Tasks represent data processing Deployment controlled via annotations Written with imperative language Abstract channels represent information exchanges
24 Is One Abstraction Enough? makesense: an extensible language Abstractions can be plugged in Users can contribute new abstractions Java-like syntax Limited support to real OO No garbage collection
25 makesense Meta-model Meta-Abstraction <<use>> Action Modifier 1 Target Target Distributed Action <<use>> Local Action <<use>> Tell Action Report Action <<use>> 0..1 Data Operator Collective Action f(x1.. xn) Tell Collective Report Data Operator
26 What if sensors can move?
27 Challenges Physical movements become part of the application logic Spatial constraints Temporal constraints
28 State of the Art: Multiple Drones Potential for reducing execution time (and costs) with multiple drones difficult to specify coordinated behaviors! Drone-level programming Swarm programming
29 Drone-level: irobot Create API
30 Swarms: ROS Robot Operating System (ROS) An attempt at abstracting low-level/distributed interactions in robotics software A meta OS Sit on top of Linux Bindings to C/C++/Python/Java Agent-based Publish/Subscribe for coordination
31 Team-level Programming Users reason based on global state and define sensing tasks to execute spatio/temporal constraints The run-time transparently decides how to allocate resources
32 Team-level Programming Example Drones abstract machine spatial Image tiles; Spatial do { variable tilesok = true; tiles@grid = Drones.do( pic",drones.cam,handlecam); foreachlocation (Location loc in tiles){ aberr=abberationestimate(tiles@loc); Active sensing loop if (aberr > MAX_ABR &&!scenechanged) { Drones.stop(handleCam); newstep=tune(drones.get("gridstep"),aberr); Drones.set("gridStep",newStep); tilesok=false; break; while (!tilesok); Triggering adaptation
33 Open Problems What s the right abstraction level? Integration within and outside of the company s backend? What about the Internet of Things?
Middleware for Wireless Sensor Networks: An Outlook
Middleware for Wireless Sensor Networks: An Outlook Gian Pietro Picco disi.unitn.it/~picco d3s.disi.unitn.it Department of Information Engineering & Computer Science University of Trento, Italy joint work
More informationTuple Spaces for Wireless Applications
Tuple Spaces for Wireless Applications Gian Pietro Picco Dip. di Ingegneria e Scienza dell Informazione University of Trento, Italy gianpietro.picco@unitn.it http://disi.unitn.it/~picco joint work with
More informationProgramming Wireless Sensor Networks with the TeenyLIME Middleware
Programming Wireless Sensor Networks with the TeenyLIME Middleware Paolo Costa 1, Luca Mottola 2, Amy L. Murphy 3, and Gian Pietro Picco 4 1 Vrije Universiteit, Amsterdam, The Netherlands, costa@cs.vu.nl
More informationProgramming Wireless Sensor Networks with the TeenyLIME Middleware
Programming Wireless Sensor Networks with the TeenyLIME Middleware Paolo Costa 1, Luca Mottola 2, Amy L. Murphy 3, and Gian Pietro Picco 4 1 Vrije Universiteit, Amsterdam, The Netherlands, costa@cs.vu.nl
More informationWSN Programming. Introduction. Olaf Landsiedel
WSN Programming Introduction Olaf Landsiedel Programming WSNs What do we need to write software for WSNs? (or: for any system, like your laptop, cell phone?) Programming language With compiler, etc. OS
More informationWSN Programming. Introduction. Olaf Landsiedel. Programming WSNs. ! What do we need to write software for WSNs?! Programming language
WSN Programming Introduction Lecture 2 Olaf Landsiedel Programming WSNs! What do we need to write software for WSNs?! Programming language " With compiler, etc.! OS / runtime libraries " Access to system
More informationThe RUNES Middleware System
The Middleware System The EU Project Paolo Costa, Luca Mottola, Gian Pietro Picco Dip. Di Elettronica ed Informazione Politecnico di Milano Geoff Coulson Department of Computing Lancaster University Cecilia
More informationContext-oriented Programming. Pascal Costanza (Vrije Universiteit Brussel, Belgium) Robert Hirschfeld (Hasso-Plattner-Institut, Potsdam, Germany)
Context-oriented Programming Pascal Costanza (Vrije Universiteit Brussel, Belgium) Robert Hirschfeld (Hasso-Plattner-Institut, Potsdam, Germany) Programs are too static! Mobile devices Software agents
More informationPolitecnico di Milano Advanced Network Technologies Laboratory. Internet of Things. TinyOS Programming and TOSSIM (and Cooja)
Politecnico di Milano Advanced Network Technologies Laboratory Internet of Things TinyOS Programming and TOSSIM (and Cooja) 20 April 2015 Agenda o Playing with TinyOS n Programming and components n Blink
More informationPolitecnico di Milano Advanced Network Technologies Laboratory. Internet of Things. TinyOS Programming and TOSSIM
Politecnico di Milano Advanced Network Technologies Laboratory Internet of Things TinyOS Programming and TOSSIM 11 April 2011 Agenda Playing with TinyOS Programming and components Blink Application Using
More informationnesc Ø Programming language for TinyOS and applications Ø Support TinyOS components Ø Whole-program analysis at compile time Ø Static language
nesc Ø Programming language for TinyOS and applications Ø Support TinyOS components Ø Whole-program analysis at compile time q Improve robustness: detect race conditions q Optimization: function inlining
More informationTinyOS. Lecture Overview. UC Berkeley Family of Motes. Mica2 and Mica2Dot. MTS300CA Sensor Board. Programming Board (MIB510) 1.
Lecture Overview TinyOS Computer Network Programming Wenyuan Xu 1 2 UC Berkeley Family of Motes Mica2 and Mica2Dot ATmega128 CPU Self-programming 128KB Instruction EEPROM 4KB Data EEPROM Chipcon CC1000
More informationnesc Prof. Chenyang Lu How should network msg be handled? Too much memory for buffering and threads
nesc Prof. Chenyang Lu CSE 521S 1 How should network msg be handled? Socket/TCP/IP? Too much memory for buffering and threads Data buffered in network stack until application threads read it Application
More informationWSN Programming: From Abstractions To Running Code
WSN Programming: From Abstractions To Running Code Luca Mottola www.sics.se/~luca Principles of Wireless Sensor Networks, KTH, September 14 th, 2009 A part of Swedish ICT WSN Programming Ease of programming
More informationCSC 533: Organization of Programming Languages. Spring 2005
CSC 533: Organization of Programming Languages Spring 2005 Language features and issues variables & bindings data types primitive complex/structured expressions & assignments control structures subprograms
More informationProgramming TinyOS. Lesson 3. Basic Structure. Main.nc
Programming TinyOS Lesson 3 Some of the content from these slides were adapted from the Crossbow Tutorials and from the TinyOS website from Mobsys Tutorials Main.nc Basic Structure Interfaces (xxx.nc)
More informationAn Overview on State of The Art and Real-World Deployments of Wireless Sensor Networks
An Overview on State of The Art and Real-World Deployments of Wireless Sensor Networks Luca Mottola (www.sics.se/~luca) Networked Embedded Systems Group SICS Guest Lecture Distributed Information System
More informationA Location Model for Ambient Intelligence
A Location Model for Ambient Intelligence National Institute of Informatics, Japan Email: ichiro@nii.ac.jp Outline 1. Motivation 2. Approach 3. Location Model 4. Design and Implementation 5. Applications
More informationMobile and Ubiquitous Computing TinyOS application example. Niki Trigoni
Mobile and Ubiquitous Computing TinyOS application example Niki Trigoni www.dcs.bbk.ac.uk/~niki niki@dcs.bbk.ac.uk Application Consider an application with the following functionality: The gateway node
More informationPolitecnico di Milano Advanced Network Technologies Laboratory. Internet of Things. TinyOS Programming and TOSSIM (and Cooja)
Politecnico di Milano Advanced Network Technologies Laboratory Internet of Things TinyOS Programming and TOSSIM (and Cooja) 19 March 2018 Agenda Playing with TinyOS Programming and components Blink Application
More informationIntroduction to Programming Motes
Introduction to Programming Motes Mohamed M. El Wakil http://mohamed.elwakil.net mohamed.elwakil@wmich.edu Wireless Sensornets (WiSe) Laboratory Department of Computer Science Western Michigan University
More informationGrade Weights. Language Design and Overview of COOL. CS143 Lecture 2. Programming Language Economics 101. Lecture Outline
Grade Weights Language Design and Overview of COOL CS143 Lecture 2 Project 0% I, II 10% each III, IV 1% each Midterm 1% Final 2% Written Assignments 10% 2.% each Prof. Aiken CS 143 Lecture 2 1 Prof. Aiken
More informationContext-Oriented Programming: Beyond Layers
Context-Oriented Programming: Beyond Layers Martin von Löwis 1 Marcus Denker 2 Oscar Nierstrasz 2 1 Operating Systems and Middleware Group Hasso-Plattner-Institute at University of Potsdam, Germany http://www.dcl.hpi.uni-potsdam.de
More informationThe Emergence of Networking Abstractions and Techniques in TinyOS
The Emergence of Networking Abstractions and Techniques in TinyOS CS295-1 Paper Presentation Mert Akdere 10.12.2005 Outline Problem Statement & Motivation Background Information TinyOS HW Platforms Sample
More informationModel Driven Development of Context Aware Software Systems
Model Driven Development of Context Aware Software Systems Andrea Sindico University of Rome Tor Vergata Elettronica S.p.A. andrea.sindico@gmail.com Vincenzo Grassi University of Rome Tor Vergata vgrassi@info.uniroma2.it
More informationSelf-Organization in Autonomous Sensor/Actuator Networks [SelfOrg]
Self-Organization in Autonomous Sensor/Actuator Networks [SelfOrg] Dr.-Ing. Falko Dressler Computer Networks and Communication Systems Department of Computer Sciences University of Erlangen-Nürnberg http://www7.informatik.uni-erlangen.de/~dressler/
More informationExam Ad Hoc and Sensor Networks HS 2007
1 February 2008 Nicolas Burri, Pascal von Rickenbach, Roger Wattenhofer Exam Ad Hoc and Sensor Networks HS 2007 Please write your Name and Legi-Number on all sheets you hand in You have 60 minutes There
More informationShort Notes of CS201
#includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system
More informationSensor Network Application Development ZIGBEE CONCEPTS 2
Sensor Network Application Development ZIGBEE CONCEPTS 2 Cruise Summerschool Johannes Kepler University November 5-7, 2007, Linz / Austria Dipl.-Ing. riener@pervasive.jku.at Overview Structure of this
More informationCS201 - Introduction to Programming Glossary By
CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with
More informationNOTE: Answer ANY FOUR of the following 6 sections:
A-PDF MERGER DEMO Philadelphia University Lecturer: Dr. Nadia Y. Yousif Coordinator: Dr. Nadia Y. Yousif Internal Examiner: Dr. Raad Fadhel Examination Paper... Programming Languages Paradigms (750321)
More informationG Programming Languages - Fall 2012
G22.2110-003 Programming Languages - Fall 2012 Lecture 3 Thomas Wies New York University Review Last week Names and Bindings Lifetimes and Allocation Garbage Collection Scope Outline Control Flow Sequencing
More informationone.world Towards a System Architecture for Pervasive Computing
Towards a System Architecture for Pervasive Computing Robert Grimm, Janet Davis, Ben Hendrickson, Eric Lemar, Tom Anderson, Brian Bershad, Gaetano Borriello, David Wetherall University of Washington Vision
More informationContext-oriented Programming for Software Variability at Runtime
Context-oriented Programming for Software Variability at Runtime Robert Hirschfeld Hasso-Plattner-Institut hirschfeld@hpi.uni-potsdam.de svpp 2008, Brussels, Belgium August 8, 2008 ! 1994-1997 Background!
More informationKevwe Edewor & Adam Hardy 14th December C05 Software Engineering
Mobile Computing Kevwe Edewor & Adam Hardy 14th December 2001 3C05 Software Engineering Objectives Define Mobile Computing and look at current trends Distinguish between types of Mobility Examine Theory
More informationTypes II. Hwansoo Han
Types II Hwansoo Han Arrays Most common and important composite data types Homogeneous elements, unlike records Fortran77 requires element type be scalar Elements can be any type (Fortran90, etc.) A mapping
More informationCS558 Programming Languages
CS558 Programming Languages Winter 2017 Lecture 7b Andrew Tolmach Portland State University 1994-2017 Values and Types We divide the universe of values according to types A type is a set of values and
More informationProgramming Sensor Networks
Programming Sensor Networks Distributed Computing Group Nicolas Burri Pascal von Rickenbach Overview TinyOS Platform Program Development Current Projects MOBILE COMPUTING 2 Sensor Nodes System Constraints
More informationMotivation was to facilitate development of systems software, especially OS development.
A History Lesson C Basics 1 Development of language by Dennis Ritchie at Bell Labs culminated in the C language in 1972. Motivation was to facilitate development of systems software, especially OS development.
More informationDesign Issues. Subroutines and Control Abstraction. Subroutines and Control Abstraction. CSC 4101: Programming Languages 1. Textbook, Chapter 8
Subroutines and Control Abstraction Textbook, Chapter 8 1 Subroutines and Control Abstraction Mechanisms for process abstraction Single entry (except FORTRAN, PL/I) Caller is suspended Control returns
More informationLecture 15: Network File Systems
Lab 3 due 12/1 Lecture 15: Network File Systems CSE 120: Principles of Operating Systems Alex C. Snoeren Network File System Simple idea: access disks attached to other computers Share the disk with many
More informationContext-Oriented Programming with Python
Context-Oriented Programming with Python Martin v. Löwis Hasso-Plattner-Institut an der Universität Potsdam Agenda Meta-Programming Example: HTTP User-Agent COP Syntax Implicit Layer Activation Django
More informationMiddleware for Ubiquitous Computing
Middleware for Ubiquitous Computing Software Testing for Mobile Computing National Institute of Informatics Ichiro Satoh Abstract When a portable computing device is moved into and attached to a new local
More informationGroup Members: Chetan Fegade Nikhil Mascarenhas. Mentor: Dr. Yann Hang Lee
Group Members: Chetan Fegade Nikhil Mascarenhas Mentor: Dr. Yann Hang Lee 1. Introduction 2. TinyGALS programming model 3. TinyOS 4. NesC 5. Middleware 6. Conclusion 7. References 8. Q & A Event driven
More informationInter-Context Control-Flow Graph for NesC, with Improved Split-Phase Handling
Inter-Context Control-Flow Graph for NesC, with Improved Split-Phase Handling Arne Wichmann Institute for Software Systems July 30, 2010 Abstract Control-flow graphs (CFG) are a common intermediate representation
More informationMobile Data Collection in Sensor Networks: The TinyLIME Middleware
Mobile Data Collection in Sensor Networks: The TinyLIME Middleware Carlo Curino a Matteo Giani a Marco Giorgetta a Alessandro Giusti a Amy L. Murphy b Gian Pietro Picco a a Dip. di Elettronica e Informazione,
More informationD7.4 Publishable Summary Report
Easy Programming of Integrated Wireless Sensor Networks Grant Agreement no: 258351 www.project-makesense.eu Date: July 11, 2014 Author(s) and affiliation: Work package/task: Document status: Dissemination
More informationThe Emergence of Networking Abstractions and Techniques in TinyOS
The Emergence of Networking Abstractions and Techniques in TinyOS Sam Madden MIT CSAIL madden@csail.mit.edu With Phil Levis, David Gay, Joe Polastre, Rob Szewczyk, Alec Woo, Eric Brewer, and David Culler
More informationObjects as Session-Typed Processes
Objects as Session-Typed Processes Stephanie Balzer and Frank Pfenning Computer Science Department, Carnegie Mellon University AGERE! 2015 The essence of object-orientation 2 The essence of object-orientation
More informationMobile Data Collection in Sensor Networks: The TinyLime Middleware
Mobile Data Collection in Sensor Networks: The TinyLime Middleware Carlo Curino a Matteo Giani a Marco Giorgetta a Alessandro Giusti a Amy L. Murphy b Gian Pietro Picco a a Dip. di Elettronica e Informazione,
More informationInteroperability. Luca Mottola slides partly by Simon Duquennoy. Politecnico di Milano, Italy and Swedish Institute of Computer Science
Interoperability Luca Mottola slides partly by Simon Duquennoy Politecnico di Milano, Italy and Swedish Institute of Computer Science 2 Not just stand-alone systems 3 NES in business processes! Motivation
More informationPolitecnico di Milano Advanced Network Technologies Laboratory. TinyOS
Politecnico di Milano Advanced Network Technologies Laboratory TinyOS Politecnico di Milano Advanced Network Technologies Laboratory A Bit of Context on WSNs Technology, Applications and Sensor Nodes WSN
More informationMotivation was to facilitate development of systems software, especially OS development.
A History Lesson C Basics 1 Development of language by Dennis Ritchie at Bell Labs culminated in the C language in 1972. Motivation was to facilitate development of systems software, especially OS development.
More informationHow should context-escaping closures proceed?
How should context-escaping closures proceed? Dave Clarke DistriNet Katholieke Universiteit Leuven B-3001 Heverlee, Belgium dave.clarke@cs.kuleuven.be Pascal Costanza Programming Technology Lab Vrije Universitiet
More informationData Types. (with Examples In Haskell) COMP 524: Programming Languages Srinivas Krishnan March 22, 2011
Data Types (with Examples In Haskell) COMP 524: Programming Languages Srinivas Krishnan March 22, 2011 Based in part on slides and notes by Bjoern 1 Brandenburg, S. Olivier and A. Block. 1 Data Types Hardware-level:
More informationService-Based Universal Application Interface for Demand Response Energy Systems (UC Berkeley Project)
Service-Based Universal Application Interface for Demand Response Energy Systems (UC Berkeley Project) Goal: Develop and demonstrate an application development environment for a scalable and extendible
More informationContext-Aware Systems. Michael Maynord Feb. 24, 2014
Context-Aware Systems Michael Maynord Feb. 24, 2014 The precise definition of 'context' is contentious. Here we will be using 'context' as any information that can be used to characterize the situation
More informationDynamic Federation of Partitioned Applications in Ubiquitous Computing Environments
Dynamic Federation of Partitioned pplications in Ubiquitous Computing Environments Ichiro Satoh National Institute of Informatics 2-1-2 Hitotsubashi, Chiyoda-ku, Tokyo 101-8430, Japan E-mail: ichiro@nii.ac.jp
More informationProgramming Languages Third Edition. Chapter 7 Basic Semantics
Programming Languages Third Edition Chapter 7 Basic Semantics Objectives Understand attributes, binding, and semantic functions Understand declarations, blocks, and scope Learn how to construct a symbol
More informationDynamic Languages and Applications
Dynamic Languages and Applications Report on the Workshop Dyla 07 at ECOOP 2007 Alexandre Bergel 1, Wolfgang De Meuter 2,Stéphane Ducasse 3, Oscar Nierstrasz 4,andRoelWuyts 5 1 Hasso-Plattner-Institut,
More informationNetworking Level Laboratory WSN Software Platform TinyOS: Installation and Configuration
A project sponsored by NSF 1 Networking Level Laboratory WSN Software Platform TinyOS: Installation and Configuration A project sponsored by NSF 2 Purpose/Objective: Learn how to install and setup the
More informationHSA foundation! Advanced Topics on Heterogeneous System Architectures. Politecnico di Milano! Seminar Room A. Alario! 23 November, 2015!
Advanced Topics on Heterogeneous System Architectures HSA foundation! Politecnico di Milano! Seminar Room A. Alario! 23 November, 2015! Antonio R. Miele! Marco D. Santambrogio! Politecnico di Milano! 2
More informationCompiler Construction
Compiler Construction Thomas Noll Software Modeling and Verification Group RWTH Aachen University https://moves.rwth-aachen.de/teaching/ss-16/cc/ Recap: Static Data Structures Outline of Lecture 18 Recap:
More informationContext-Aware Leasing for Mobile Ad hoc Networks
Context-Aware Leasing for Mobile Ad hoc Networks Elisa Gonzalez Boix, Jorge Vallejos, Tom Van Cutsem, Jessie Dedecker, and Wolfgang De Meuter Programming Technology Lab Vrije Universiteit Brussel, Belgium
More informationContext-oriented Programming
Vol. 7, No. 3, March Aprile 2008 Context-oriented Programming Robert Hirschfeld, Hasso-Plattner-Institut, Universität Potsdam, Germany Pascal Costanza, Programming Technology Lab, Vrije Universiteit Brussel,
More informationMiddleware Support for Embedded Software with Multiple QoS Properties for Ubiquitous Computing Environments
Middleware Support for Embedded Software with Multiple QoS Properties for Ubiquitous Computing Environments Stephen S. Yau, Yu Wang and Dazhi Huang Department of Computer Science and Engineering Arizona
More informationSoftware II: Principles of Programming Languages. Why Expressions?
Software II: Principles of Programming Languages Lecture 7 Expressions and Assignment Statements Why Expressions? Expressions are the fundamental means of specifying computations in a programming language
More informationDevelopment of Emulation Projects for Teaching Wireless Sensor Networks 1
Development of Emulation Projects for Teaching Wireless Sensor Networks Deepesh Jain T. Andrew Yang University of Houston Clear Lake Houston, Texas Abstract In recent years research and development in
More informationCS558 Programming Languages
CS558 Programming Languages Fall 2016 Lecture 7a Andrew Tolmach Portland State University 1994-2016 Values and Types We divide the universe of values according to types A type is a set of values and a
More information38. System Support for Pervasive Applications
38. System Support for Pervasive Applications Robert Grimm 1 and Brian Bershad 2 1 New York University, New York, NY rgrimm@cs.nyu.edu 2 University of Washington, Seattle, WA bershad@cs.washington.edu
More informationWhat are the characteristics of Object Oriented programming language?
What are the various elements of OOP? Following are the various elements of OOP:- Class:- A class is a collection of data and the various operations that can be performed on that data. Object- This is
More informationUML MODELLING OF DESIGN PATTERNS FOR WIRELESS SENSOR NETWORKS
UML MODELLING OF DESIGN PATTERNS FOR WIRELESS SENSOR NETWORKS John K. Jacoub, Ramiro Liscano, Jeremy S. Bradbury and Jared Fisher University of Ontario Institute of Technology, Oshawa, Onatrio, Canada
More informationHSA Foundation! Advanced Topics on Heterogeneous System Architectures. Politecnico di Milano! Seminar Room (Bld 20)! 15 December, 2017!
Advanced Topics on Heterogeneous System Architectures HSA Foundation! Politecnico di Milano! Seminar Room (Bld 20)! 15 December, 2017! Antonio R. Miele! Marco D. Santambrogio! Politecnico di Milano! 2
More informationLecture 10 Notes Linked Lists
Lecture 10 Notes Linked Lists 15-122: Principles of Imperative Computation (Spring 2016) Frank Pfenning, Rob Simmons, André Platzer 1 Introduction In this lecture we discuss the use of linked lists to
More informationTowards a Real-Time Implementation of the ECMA Common Language Infrastructure
Towards a Real-Time Implementation of the ECMA Common Language Infrastructure Martin von Löwis and Andreas Rasche Hasso-Plattner-Institute at University of Potsdam, Germany ISORC 2006 24-26 April, 2006
More informationA Declarative Approach to Agent-Centered Context-Aware Computing in Ad Hoc Wireless Environments
A Declarative Approach to Agent-Centered Context-Aware Computing in Ad Hoc Wireless Environments Gruia-Catalin Roman 1 Christine Julien 1 Amy L. Murphy 2 1 Department of Computer Science Washington University
More informationCS61, Fall 2012 Section 2 Notes
CS61, Fall 2012 Section 2 Notes (Week of 9/24-9/28) 0. Get source code for section [optional] 1: Variable Duration 2: Memory Errors Common Errors with memory and pointers Valgrind + GDB Common Memory Errors
More informationCIS24 Project #3. Student Name: Chun Chung Cheung Course Section: SA Date: 4/28/2003 Professor: Kopec. Subject: Functional Programming Language (ML)
CIS24 Project #3 Student Name: Chun Chung Cheung Course Section: SA Date: 4/28/2003 Professor: Kopec Subject: Functional Programming Language (ML) 1 Introduction ML Programming Language Functional programming
More informationIntegrating Concurrency Control and Energy Management in Device Drivers
Integrating Concurrency Control and Energy Management in Device Drivers Kevin Klues, Vlado Handziski, Chenyang Lu, Adam Wolisz, David Culler, David Gay, and Philip Levis Overview Concurrency Control: Concurrency
More informationCS4516 Advanced Computer Networks. Final Review
Final Review ------------------------------ Final Material Begins Here --------------------------- V. Local Area Networks A. "The Channel Allocation Problem" 1. assumptions B. LAN Performance Notation
More informationDistributed Systems/Middleware JavaSpaces
Distributed Systems/Middleware JavaSpaces Alessandro Sivieri Dipartimento di Elettronica e Informazione Politecnico, Italy sivieri@elet.polimi.it http://corsi.dei.polimi.it/distsys Slides based on previous
More informationChapter 5. Names, Bindings, and Scopes
Chapter 5 Names, Bindings, and Scopes Chapter 5 Topics Introduction Names Variables The Concept of Binding Scope Scope and Lifetime Referencing Environments Named Constants 1-2 Introduction Imperative
More informationWhite Paper: Delivering Enterprise Web Applications on the Curl Platform
White Paper: Delivering Enterprise Web Applications on the Curl Platform Table of Contents Table of Contents Executive Summary... 1 Introduction... 2 Background... 2 Challenges... 2 The Curl Solution...
More informationExtracting High-Level Context from Low-Level Sensor Data
Extracting High-Level Context from Low-Level Sensor Data Yanyong Zhang Bernhard Firner Rutgers University, Winlab May 10, 2011 Yanyong Zhang (Winlab) Extracting High-Level Context May 10, 2011 1 / 16 High-Level
More informationClosures. Mooly Sagiv. Michael Clarkson, Cornell CS 3110 Data Structures and Functional Programming
Closures Mooly Sagiv Michael Clarkson, Cornell CS 3110 Data Structures and Functional Programming Summary 1. Predictive Parsing 2. Large Step Operational Semantics (Natural) 3. Small Step Operational Semantics
More informationCross-compiling C++ to JavaScript. Challenges in porting the join.me common library to HTML5
Cross-compiling C++ to JavaScript Challenges in porting the join.me common library to HTML5 JUNE 24, 2015 LEVENTE HUNYADI join.me at a glance 2 join.me at a glance 3 join.me characteristics Application
More informationIntroduction to Visual Basic and Visual C++ Introduction to Java. JDK Editions. Overview. Lesson 13. Overview
Introduction to Visual Basic and Visual C++ Introduction to Java Lesson 13 Overview I154-1-A A @ Peter Lo 2010 1 I154-1-A A @ Peter Lo 2010 2 Overview JDK Editions Before you can write and run the simple
More informationAutomated Bug Detection for Pointers and Memory Accesses in High-Level Synthesis Compilers
Automated Bug Detection for Pointers and Memory Accesses in High-Level Synthesis Compilers Pietro Fezzardi pietro.fezzardi@polimi.it Fabrizio Ferrandi fabrizio.ferrandi@polimi.it Dipartimento di Elettronica,
More information9/5/17. The Design and Implementation of Programming Languages. Compilation. Interpretation. Compilation vs. Interpretation. Hybrid Implementation
Language Implementation Methods The Design and Implementation of Programming Languages Compilation Interpretation Hybrid In Text: Chapter 1 2 Compilation Interpretation Translate high-level programs to
More informationFunctional Programming and Haskell
Functional Programming and Haskell Tim Dawborn University of Sydney, Australia School of Information Technologies Tim Dawborn Functional Programming and Haskell 1/22 What are Programming Paradigms? A programming
More informationOverloading, Type Classes, and Algebraic Datatypes
Overloading, Type Classes, and Algebraic Datatypes Delivered by Michael Pellauer Arvind Computer Science and Artificial Intelligence Laboratory M.I.T. September 28, 2006 September 28, 2006 http://www.csg.csail.mit.edu/6.827
More informationAdvanced Programming & C++ Language
Advanced Programming & C++ Language ~6~ Introduction to Memory Management Ariel University 2018 Dr. Miri (Kopel) Ben-Nissan Stack & Heap 2 The memory a program uses is typically divided into four different
More informationIntegrating Concurrency Control and Energy Management in Device Drivers. Chenyang Lu
Integrating Concurrency Control and Energy Management in Device Drivers Chenyang Lu Overview Ø Concurrency Control: q Concurrency of I/O operations alone, not of threads in general q Synchronous vs. Asynchronous
More informationAgent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Distributed and Agent Systems
Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Distributed and Agent Systems Prof. Agostino Poggi What is CORBA? CORBA (Common Object Request
More informationProgramming Safe Agents in Blueprint. Alex Muscar University of Craiova
Programming Safe Agents in Blueprint Alex Muscar University of Craiova Programmers are craftsmen, and, as such, they are only as productive as theirs tools allow them to be Introduction Agent Oriented
More informationJava Basics. Object Orientated Programming in Java. Benjamin Kenwright
Java Basics Object Orientated Programming in Java Benjamin Kenwright Outline Essential Java Concepts Syntax, Grammar, Formatting, Introduce Object-Orientated Concepts Encapsulation, Abstract Data, OO Languages,
More informationCSC324 Principles of Programming Languages
CSC324 Principles of Programming Languages http://mcs.utm.utoronto.ca/~324 November 14, 2018 Today Final chapter of the course! Types and type systems Haskell s type system Types Terminology Type: set
More informationDistribution and Integration Technologies
Distribution and Integration Technologies Distributed Architectures Patterns and Styles 1 Distributed applications infrastructure ISP intranet wireless backbone desktop computer: server: laptops: tablets:
More informationMinsoo Ryu. College of Information and Communications Hanyang University.
Software Reuse and Component-Based Software Engineering Minsoo Ryu College of Information and Communications Hanyang University msryu@hanyang.ac.kr Software Reuse Contents Components CBSE (Component-Based
More informationWireless Sensor Networks (WSN)
Wireless Sensor Networks (WSN) Operating Systems M. Schölzel Operating System Tasks Traditional OS Controlling and protecting access to resources (memory, I/O, computing resources) managing their allocation
More information