Results 11 - 20
of
26
Phantom: A Serializing Compiler for Multitasking Embedded Software
"... Abstract — In an era of powerful general-purpose embedded compute platforms, the migration of system functionality from application specific integrated circuits (ASICs) to software has become a promising trend toward addressing the system complexity and shrinking timeto-market window challenges. Hen ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
Abstract — In an era of powerful general-purpose embedded compute platforms, the migration of system functionality from application specific integrated circuits (ASICs) to software has become a promising trend toward addressing the system complexity and shrinking timeto-market window challenges. Hence, in modern embedded systems, software development plays an increasingly vital role. On the other hand, the real-time concurrent programming model provides the high level abstractions necessary to effectively design complex software. Support for real-time concurrent programming is typically provided by a realtime operating system. We propose an alternate solution, the Phantom serializing compiler, to support the real-time concurrent programming model. The Phantom serializing compiler generates a single-threaded monolithic executable, from the multi-threaded application software, capable of directly executing on the underlying embedded compute platform. Further, the generated executable is tuned for maximum performance and efficiency, yielding an application-specific solution. In this paper, we give an overview of the Phantom serializing compiler and demonstrate its feasibility with some experimental results. I.
Steps Toward The Reinvention of Programming -- A Compact and Practical Model of Personal Computing as a Self-Exploratorium
-
, 2006
"... ..."
Synthesizing Scalable System Software for Wireless Sensor Networks Abstract
, 2007
"... Computer Science Sensor networks are being deployed at massive scales, containing a range of sensors and underlying computing platforms. Programming paradigms for sensor networks should meet the attendant challenges of scale and heterogeneity. Furthermore, with sensor networks expected to be deploye ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Computer Science Sensor networks are being deployed at massive scales, containing a range of sensors and underlying computing platforms. Programming paradigms for sensor networks should meet the attendant challenges of scale and heterogeneity. Furthermore, with sensor networks expected to be deployed for long periods of time, the ability to reprogram them remotely is necessary in order to provide new services, fix bugs, and enhance applications and system software. The operating system and whole system reprogramming approach in use today will have limited use in the future, given the envisioned scales of sensor network deployments. In order to address this challenge, researchers have treated virtual machines as system software. However, to satisfy the resource limitations of sensor nodes, they usually export only a minimal set of services to the application programmer. This makes applications of even moderate complexity difficult to implement. In this dissertation, methods to implement virtual machines that scale and export com-prehensive service-suites on a per-application basis are presented. The use of fine-grained software synthesis and scaling to build resource-efficient system software is advocated, and a new incre-mental linking technique to reduce the cost of application evolution to facilitate both application
Efficient Data Driven Run-Time Code Generation for Multimedia Applications
- In: LCR ’04: Proceedings of the 7th workshop on Workshop on languages, compilers, and
, 2004
"... Knowledge of data values and invariants at run-time allows to generate better code in terms of efficiency, size and power consumption. These techniques are particularly effective in the case of intensively reused functions, such as graphic applications. ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Knowledge of data values and invariants at run-time allows to generate better code in terms of efficiency, size and power consumption. These techniques are particularly effective in the case of intensively reused functions, such as graphic applications.
Dynamically Typed Languages
- ADVANCES IN COMPUTERS
, 2009
"... Dynamically typed languages such as Python and Ruby have experienced a rapid grown in popularity in recent times. However, there is much confusion as to what makes these languages interesting relative to statically typed languages, and little knowledge of their rich history. In this chapter I explor ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Dynamically typed languages such as Python and Ruby have experienced a rapid grown in popularity in recent times. However, there is much confusion as to what makes these languages interesting relative to statically typed languages, and little knowledge of their rich history. In this chapter I explore the general topic of dynamically typed languages, how they differ from statically typed languages, their history, and their defining features.
Balancing Computation and Communication Costs: The Case for Hybrid Execution in Sensor Networks
"... Abstract — Virtual machines (VM) are promising as system software in sensor networks. A major impediment to their widespread acceptance is their performance overhead. Compiling VM bytecode to native code addresses this, but increases footprint and code distribution costs. Thus, there is an important ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Abstract — Virtual machines (VM) are promising as system software in sensor networks. A major impediment to their widespread acceptance is their performance overhead. Compiling VM bytecode to native code addresses this, but increases footprint and code distribution costs. Thus, there is an important tradeoff between cost of computing, and cost of communication due to code distribution. In this paper, we describe a remote Just-In-Time (JIT) compilation service for the VM ⋆ framework that is effective in combining interpretation with native execution to arrive at an efficient hybrid execution configuration. The principles apply to any middleware used to develop applications in sensor networks. I.
Developments in Cartesian Genetic Programming: self-modifying CGP
, 2010
"... Self-modifying Cartesian Genetic Programming (SMCGP) is a general purpose, graph-based, developmental form of Genetic Programming founded on Cartesian Genetic Programming. In addition to the usual computational functions, it includes functions that can modify the program encoded in the genotype. Th ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
Self-modifying Cartesian Genetic Programming (SMCGP) is a general purpose, graph-based, developmental form of Genetic Programming founded on Cartesian Genetic Programming. In addition to the usual computational functions, it includes functions that can modify the program encoded in the genotype. This means that programs can be iterated to produce an infinite sequence of programs (phenotypes) from a single evolved genotype. It also allows programs to acquire more inputs and produce more outputs during this iteration. We discuss how SMCGP can be used and the results obtained in several different problem domains, including digital circuits, generation of patterns and sequences, and mathematical problems. We find that SMCGP can efficiently solve all the problems studied. In addition, we prove mathematically that evolved programs can provide general solutions to a number of problems: n-input even-parity, n-input adder, and sequence approximation to p.
Bridging the Gaps in Software Engineering Education– A Course on Trustworthy Computing with Virtual Machines
"... Software Engineering Education (SEE), in its breadth and depth, has many facets of courses ranging from professional and design skills to technology enriched system development. The complexity of the software systems and rapidly evolving flexible environment mandate use of secure code and a verifier ..."
Abstract
- Add to MetaCart
Software Engineering Education (SEE), in its breadth and depth, has many facets of courses ranging from professional and design skills to technology enriched system development. The complexity of the software systems and rapidly evolving flexible environment mandate use of secure code and a verifier in some form as the software performs. With the emergence of virtual runtime systems (VRS), it is being increasingly felt that trustworthiness in software systems can be better realized through stronger coupling of objectoriented computing (OOC), programming language implementation (PLI) with software engineering (SE) concepts. However, there does not exist courses which can bring synergy among OOC, PLI, VRS components for SEE. In this working paper, we identify the gaps in current software engineering curriculum, and propose structure of the additional course(s) which can establish such a synergy, and make students, professionals and practitioners understand the concepts and practices needed to developing trusted and reusable components and systems with emerging computational environments. We conclude this paper with the case study of few such courses which are recently developed.
Supporting Higher-Order Virtualization
"... Virtualization is ubiquitous, with the global availability of the Java Virtual Machine and other similar virtual machine platforms. Higher-order ..."
Abstract
- Add to MetaCart
Virtualization is ubiquitous, with the global availability of the Java Virtual Machine and other similar virtual machine platforms. Higher-order

