Results 1 - 10
of
17
The nesC language: A holistic approach to networked embedded systems
- In Proceedings of Programming Language Design and Implementation (PLDI
, 2003
"... We present nesC, a programming language for networked embedded systems that represent a new design space for application developers. An example of a networked embedded system is a sensor network, which consists of (potentially) thousands of tiny, lowpower “motes, ” each of which execute concurrent, ..."
Abstract
-
Cited by 569 (40 self)
- Add to MetaCart
We present nesC, a programming language for networked embedded systems that represent a new design space for application developers. An example of a networked embedded system is a sensor network, which consists of (potentially) thousands of tiny, lowpower “motes, ” each of which execute concurrent, reactive programs that must operate with severe memory and power constraints. nesC’s contribution is to support the special needs of this domain by exposing a programming model that incorporates event-driven execution, a flexible concurrency model, and component-oriented application design. Restrictions on the programming model allow the nesC compiler to perform whole-program analyses, including data-race detection (which improves reliability) and aggressive function inlining (which reduces resource consumption). nesC has been used to implement TinyOS, a small operating system for sensor networks, as well as several significant sensor applications. nesC and TinyOS have been adopted by a large number of sensor network research groups, and our experience and evaluation of the language shows that it is effective at supporting the complex, concurrent programming style demanded by this new class of deeply networked systems.
Arrows, Robots, and Functional Reactive Programming
- Advanced Functional Programming, 4th International School, volume 2638 of LNCS
, 2002
"... Functional reactive programming, or FRP, is a paradigm for programming hybrid systems -- i.e., systems containing a combination of both continuous and discrete components -- in a high-level, declarative way. The key ideas in FRP are its notions of continuous, time-varying values, and time-ordere ..."
Abstract
-
Cited by 41 (9 self)
- Add to MetaCart
Functional reactive programming, or FRP, is a paradigm for programming hybrid systems -- i.e., systems containing a combination of both continuous and discrete components -- in a high-level, declarative way. The key ideas in FRP are its notions of continuous, time-varying values, and time-ordered sequences of discrete events.
Stack size analysis for interrupt-driven programs
- In Proceedings of the 10th International Symposium on Static Analysis, volume LNCS 2694
, 2003
"... Abstract. We study the problem of determining stack boundedness and the exact maximum stack size for three classes of interrupt-driven programs. Interrupt-driven programs are used in many real-time applications that require responsive interrupt handling. In order to ensure responsiveness, programmer ..."
Abstract
-
Cited by 18 (0 self)
- Add to MetaCart
Abstract. We study the problem of determining stack boundedness and the exact maximum stack size for three classes of interrupt-driven programs. Interrupt-driven programs are used in many real-time applications that require responsive interrupt handling. In order to ensure responsiveness, programmers often enable interrupt processing in the body of lower-priority interrupt handlers. In such programs a programming error can allow interrupt handlers to be interrupted in cyclic fashion to lead to an unbounded stack, causing the system to crash. For a restricted class of interrupt-driven programs, we show that there is a polynomial-time procedure to check stack boundedness, while determining the exact maximum stack size is PSPACE-complete. For a larger class of programs, the two problems are both PSPACE-complete, and for the largest class of programs we consider, the two problems are PSPACE-hard and can be solved in exponential time. 1
A Dependently Typed Framework for Static Analysis of Program Execution Costs
- In Revised selected papers from IFL 2005: 17th international workshop on implementation and application of functional languages
, 2005
"... Abstract. This paper considers the use of dependent types to capture information about dynamic resource usage in a static type system. Dependent types allow us to give (explicit) proofs of properties with a program; we present a dependently typed core language ��, and define a framework within this ..."
Abstract
-
Cited by 13 (9 self)
- Add to MetaCart
Abstract. This paper considers the use of dependent types to capture information about dynamic resource usage in a static type system. Dependent types allow us to give (explicit) proofs of properties with a program; we present a dependently typed core language ��, and define a framework within this language for representing size metrics and their properties. We give several examples of size bounded programs within this framework and show that we can construct proofs of their size bounds within ��. We further show how the framework handles recursive higher order functions and sum types, and contrast our system with previous work based on sized types. 1
Lowering: A static optimization technique for transparent functional reactivity
- In ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation
, 2007
"... functional programming with dataflow evaluation, making it possible to write interactive programs in a declarative style. An frp language creates a dynamic graph of data dependencies and reacts to changes by propagating updates through the graph. In a transparent frp language, the primitive operator ..."
Abstract
-
Cited by 6 (1 self)
- Add to MetaCart
functional programming with dataflow evaluation, making it possible to write interactive programs in a declarative style. An frp language creates a dynamic graph of data dependencies and reacts to changes by propagating updates through the graph. In a transparent frp language, the primitive operators are implicitly lifted, so they construct graph nodes when they are applied to time-varying values. This model has some attractive properties, but it tends to produce a large graph that is costly to maintain. In this paper, we develop a transformation we call lowering, which improves performance by reducing the size of the graph. We present a static analysis that guides the sound application of this optimization, and we present benchmark results that demonstrate dramatic improvements in both speed and memory usage for real programs.
Generating heap-bounded programs in a functional setting
- In EMSOFT
, 2003
"... ? Supported by NSF grants ITR-0113569, CCR-0224244 and CCR-0229480. ..."
Abstract
-
Cited by 6 (0 self)
- Add to MetaCart
? Supported by NSF grants ITR-0113569, CCR-0224244 and CCR-0229480.
System Modeling and Design Refinement in ForSyDe
, 2003
"... Advances in microelectronics allow the integration of more and more functionality on a single chip. Emerging system-on-a-chip architectures include a large amount of heterogeneous components and are of increasing complexity. Applications using these architectures require many low-level details in or ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
Advances in microelectronics allow the integration of more and more functionality on a single chip. Emerging system-on-a-chip architectures include a large amount of heterogeneous components and are of increasing complexity. Applications using these architectures require many low-level details in order to yield an efficient implementation. On the other hand constant time-to-market pressure on electronic systems demands a short design process that allows to model a system at a high abstraction level, not taking low-level implementation details into account. Clearly there is a significant abstraction gap between an ideal model for specification and another one for implementation. This abstraction gap has to be addressed by methodologies for electronic system design. This thesis presents the ForSyDe (Formal System Design) methodology, which has been developed with the objective to move system design to a higher level of abstraction and to bridge the abstraction gap by transformational design refinement. ForSyDe is based on carefully selected formal foundations. The initial
E-FRP with priorities
- in EMSOFT ’07: Proceedings of the 7th ACM & IEEE international
"... E-FRP is declarative language for programming resourcebounded, event-driven systems. The original high-level semantics of E-FRP requires that each event handler execute atomically. This requirement facilitates reasoning about E-FRP programs, and therefore it is a desirable feature of the language. B ..."
Abstract
-
Cited by 3 (2 self)
- Add to MetaCart
E-FRP is declarative language for programming resourcebounded, event-driven systems. The original high-level semantics of E-FRP requires that each event handler execute atomically. This requirement facilitates reasoning about E-FRP programs, and therefore it is a desirable feature of the language. But the original compilation strategy requires that each handler complete execution before another event can occur. This implementation choice treats all events equally, in that it forces the upper bound on the time needed to respond to any event to be the same. While this is acceptable for many applications, it is often the case that some events are more urgent than others. In this paper, we show that we can improve the compilation strategy without altering the high-level semantics. With this new compilation strategy, we give the programmer more control over responsiveness without taking away the ability to reason about programs at a high level. The programmer controls responsiveness by declaring priorities for events, and the compilation strategy produces code that uses preemption to enforce these priorities. We show that the compilation strategy enjoys the same properties as the original strategy, with the only change being that the programmer reasons modulo permutations on the order of event arrivals.
The Design of Wireless Sensor Network System Based on ZigBee Technology for Greenhouse
"... Abstract. Wireless sensor network is a new research field. It can be used in some special situation for signal collection, processing and transmitting. Zigbee is a new Wireless sensor network technology characteristic of less distance and low speed. It is a new wireless network protocol stack of IEE ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
Abstract. Wireless sensor network is a new research field. It can be used in some special situation for signal collection, processing and transmitting. Zigbee is a new Wireless sensor network technology characteristic of less distance and low speed. It is a new wireless network protocol stack of IEEE 802.15.4. Lately traditional system to collects parameters for Greenhouse is widely used in agriculture. The traditional system adopts wired way wiring, which makes the system complex and expensive. Generally modern Greenhouse has hundreds of square meters and they may plant variety of plants depending on different seasons. So we need to adjust the sensors which collect parameters for Greenhouse to a better place to work more efficient. Adopting wireless way wiring is convenient and economical. This paper developed a wireless sensor network system based on ZigBee technology for greenhouse. It offers flexibility and mobility to save cost and energy spent on wiring. The framework hardware and software structure, related programming are also discussed in this paper. Comparing the system which uses ZigBee technology with traditional wired network system for greenhouse, it has advantage of low cost�low power and wider coverage. Additionally it complies with IEEE802.15.4 protocol, which makes it convenient to communicate with other
Mathematical Equations as Executable Models of Mechanical Systems
"... Cyber-physical systems comprise digital components that directly interact with a physical environment. Specifying the behavior desired of such systems requires analytical modeling of physical phenomena. Similarly, testing them requires simulation of continuous systems. While numerous tools support l ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
Cyber-physical systems comprise digital components that directly interact with a physical environment. Specifying the behavior desired of such systems requires analytical modeling of physical phenomena. Similarly, testing them requires simulation of continuous systems. While numerous tools support later stages of developing simulation codes, there is still a large gap between analytical modeling and building running simulators. This gap significantly impedes the ability of scientists and engineers to develop novel cyber-physical systems. We propose bridging this gap by automating the mapping from analytical models to simulation codes. Focusing on mechanical systems as an important class of models of physical systems, we study the form of analytical models that arise in this domain, along with the process by which domain experts map them to executable codes. We show that the key steps needed to automate this mapping are 1) a light-weight analysis to partially direct equations, 2) a binding-time analysis, and 3) an efficient implementation of symbolic differentiation. As such, our work pinpoints and highlights a number of limitations in the state of the art in tool support of simulation, and shows how some of these limitations can be overcome. 1.

