Untagged data in tagged environments: choosing optimal representations at compile time
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Unboxed values as first class citizens in a non-strict functional language
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
Can logic programming execute as fast as imperative programming?
Can logic programming execute as fast as imperative programming?
Unboxed objects and polymorphic typing
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Concurrency in Prolog using threads and a shared database
Proceedings of the 1999 international conference on Logic programming
Parallel execution of prolog programs: a survey
ACM Transactions on Programming Languages and Systems (TOPLAS)
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
The Well Mannered Wearable Computer
Personal and Ubiquitous Computing
The Real-Time Specification for Java
Computer
An Assertion Language for Constraint Logic Programs
Analysis and Visualization Tools for Constraint Programming, Constrain Debugging (DiSCiPl project)
More Precise Yet Efficient Type Inference for Logic Programs
SAS '02 Proceedings of the 9th International Symposium on Static Analysis
StreamIt: A Language for Streaming Applications
CC '02 Proceedings of the 11th International Conference on Compiler Construction
An Introduction to the Kalman Filter
An Introduction to the Kalman Filter
How compilers and tools differ for embedded systems
Proceedings of the 2005 international conference on Compilers, architectures and synthesis for embedded systems
Science of Computer Programming - Special issue: Static analysis symposium (SAS 2003)
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
Analysis of the use of declarative languages for enhanced embedded system software development
Proceedings of the 20th annual conference on Integrated circuits and systems design
Comparing tag scheme variations using an abstract machine generator
Proceedings of the 10th international ACM SIGPLAN conference on Principles and practice of declarative programming
Concurrency, Graphs and Models
Towards a Complete Scheme for Tabled Execution Based on Program Transformation
PADL '09 Proceedings of the 11th International Symposium on Practical Aspects of Declarative Languages
An improved continuation call-based implementation of tabling
PADL'08 Proceedings of the 10th international conference on Practical aspects of declarative languages
PADL'08 Proceedings of the 10th international conference on Practical aspects of declarative languages
An overview of ciao and its design philosophy
Theory and Practice of Logic Programming - Prolog Systems
Fluid interaction in audio-guided museum visit: authoring tool and visitor device
VAST'10 Proceedings of the 11th International conference on Virtual Reality, Archaeology and Cultural Heritage
Hi-index | 0.00 |
In this paper we study, through a concrete case, the feasibility of using a high-level, general-purpose logic language in the design and implementation of applications targeting wearable computers. The case study is a "sound spatializer" which, given real-time signals for monaural audio and heading, generates stereo sound which appears to come from a position in space. The use of advanced compile-time transformations and optimizations made it possible to execute code written in a clear style without efficiency or architectural concerns on the target device, while meeting strict existing time and memory constraints. The final executable compares favorably with a similar implementation written in C. We believe that this case is representative of a wider class of common pervasive computing applications, and that the techniques we show here can be put to good use in a range of scenarios. This points to the possibility of applying high-level languages, with their associated exibility, conciseness, ability to be automatically parallelized, sophisticated compile-time tools for analysis and verification, etc., to the embedded systems eld without paying an unnecessary performance penalty.