This paper introduces Quetzal, a tangible programminglanguage for children to use in educational settings. Quetzal features inexpensive, durable parts with no embedded electronics or power supplies. Children create p...
详细信息
ISBN:
(纸本)1595932984
This paper introduces Quetzal, a tangible programminglanguage for children to use in educational settings. Quetzal features inexpensive, durable parts with no embedded electronics or power supplies. Children create programs in offline settings-on their desks or on the floor-and carry their programs to a scanning station when they are ready to compile. We argue that a language like Quetzal could offer an appealing and practical alternative to conventional languages for introducing programming concepts in the classroom. This paper discusses the motivations for the Quetzal project and describes the design and implementation of the language. We also outline several key questions that are guiding our research with Quetzal.
Domain-specific languages hold the potential of automating the software development process. Nevertheless, the adoption of a domain-specific language is hindered by the difficulty of transitioning to different languag...
详细信息
ISBN:
(纸本)1595933751
Domain-specific languages hold the potential of automating the software development process. Nevertheless, the adoption of a domain-specific language is hindered by the difficulty of transitioning to different language syntax and employing a separate translator in the software build process. We present a methodology that simplifies the development and deployment of small language extensions, in the context of Java. The main languagedesign principle is that of language extension through unobtrusive annotations. The main languageimplementation idea is to express the language as a generator of customized AspectJ aspects, using our Meta-Aspect J tool. The advantages of the approach are twofold. First, the tool integrates into an existing software application much as a regular API or library, instead of as a language extension. This means that the programmer can remove the language extension at any point and choose to implement the required functionality by hand without needing to rewrite the client code. Second, a mature languageimplementation is easy to achieve with little effort since AspectJ takes care of the low-level issues of interfacing with the base Java language*.
The Squawk virtual machine is a small Java™ virtual machine (VM) written mostly in Java that runs without an operating system on a wireless sensor platform. Squawk translates standard class file into an internal pre-l...
详细信息
The Squawk virtual machine is a small Java™ virtual machine (VM) written mostly in Java that runs without an operating system on a wireless sensor platform. Squawk translates standard class file into an internal pre-linked, position independent format that is compact and allows for efficient execution of bytecodes that have been placed into a read-only memory. In addition, Squawk implements an application isolation mechanism whereby applications are represented as object and are therefore treated as first class objects (i.e., they can be reified): Application isolation also enables Squawk to run multiple applications at once with all immutable state being shared between the applications. Mutable state is not shared. The combination of these features reduce the memory footprint of the VM, making it ideal for deployment on small devices. Squawk provides a wireless API that allows developers to write applications for wireless sensor networks (WSNs), this API is an extension of the generic connection framework (GCF). Authentication of deployed files on the wireless device and migration of applications between devices is also performed by the VM. This paper describes the design and implementation of the Squawk VM as applied to the Sun™ Small Programmable Object Technology (SPOT) wireless device;a device developed at Sun Microsystems Laboratories for experimentation with wireless sensor and actuator applications.
Refactorings are behaviour-preserving program transformations, typically for improving the structure of existing code. A few of these transformations have been mechanised in interactive development environments. Many ...
详细信息
ISBN:
(纸本)1595933751
Refactorings are behaviour-preserving program transformations, typically for improving the structure of existing code. A few of these transformations have been mechanised in interactive development environments. Many more refactorings have been proposed, and it would be desirable for programmers to script their own refactorings. Implementing such source-to-source transformations, however, is quite complex: even the most sophisticated development environments contain significant bugs in their refactoring tools. We present a domain-specific language for refactoring, named JunGL. It manipulates a graph representation of the program: all information about the program, including ASTs for its compilation units, variable binding, control flow and so on is represented in a uniform graph format. The language is a hybrid of a functional language (in the style of ML) and a logic query language (akin to Datalog). JunGL furthermore has a notion of demand-driven evaluation for constructing computed information in the graph, such as control flow edges. Borrowing from earlier work on the specification of compiler optimisations, JunGL uses socalled 'path queries' to express dataflow properties. We motivate the design of JunGL via a number of nontrivial refactorings, and describe its implementation on the .NET platform. Copyright 2006 acm.
SecureUML is a security modeling language for formalizing access control requirements in a declarative way. It is equipped with a UML notation in terms of a UML profile, and can be combined with arbitrary design model...
详细信息
ISBN:
(纸本)3540457720
SecureUML is a security modeling language for formalizing access control requirements in a declarative way. It is equipped with a UML notation in terms of a UML profile, and can be combined with arbitrary design modeling languages. We present a semantics for SecureUML in terms of a model transformation to standard UML/OCL. The transformation scheme is used as part of an implementation of a tool chain ranging from front-end visual modeling tools over code-generators to the interactive theorem proving environment HOL-OCL. The methodological consequences for an analysis of the generated OCL formulae are discussed.
AspectJ does not provide a mechanism to hide implementation details from advice. As a result, aspects are tightly coupled to the implementation of the code they advise, while the behaviour of the base code is impossib...
详细信息
ISBN:
(纸本)159593300X
AspectJ does not provide a mechanism to hide implementation details from advice. As a result, aspects are tightly coupled to the implementation of the code they advise, while the behaviour of the base code is impossible to determine without analysing all advice that could modify its behaviour. The concept of open modules is proposed by Aldrich to solve the problems that arise from unrestricted advice. Defined for a, small functional language, it provides an encapsulation construct that allows an implementation to limit the set of points to which external advice may apply. We present an adaptation of open modules for AspectJ. We expand open modules to encompass the full set of point-cut primitives for AspectJ, extend its method of module composition to include the ability to open up a module, and describe the implementation of the design as an extension of the AspectBench compiler. We also provide an example of the use of open modules on a substantial AspectJ program to show how it would fit into existing AspectJ projects. Copyright 2006 acm.
Architectural decisions for DSP modules are often analyzed using high level C models. Such high-level explorations allow early examination of the algorithms and the architectural trade-offs that must be made for a pra...
详细信息
ISBN:
(纸本)1595933816
Architectural decisions for DSP modules are often analyzed using high level C models. Such high-level explorations allow early examination of the algorithms and the architectural trade-offs that must be made for a practical implementation. The same models can be reused during the verification of the RTL subsequently developed, provided that various "hooks" which are desirable during the verification process are considered while creating these high level models. In addition, consideration must be given to the qualitative content of these high level models to permit an optimal verification flow allowing for compromise between features of the model and the completeness of the verification. Thus, high quality design and verification are achieved by the use of valid models and the valid use of models. In this paper, we describe our approach and show examples from a typical image processing application. Copyright 2006 acm.
In this paper we describe an ongoing study of novice programmers in an introductory programming course. Building on previously published results from the study we explore the distributions of different kinds of langua...
详细信息
ISBN:
(纸本)9781920682347
In this paper we describe an ongoing study of novice programmers in an introductory programming course. Building on previously published results from the study we explore the distributions of different kinds of language related (rather than general or design related) problems over the sequence of laboratory exercises in the course. Data collected from student cohorts in 2003 and 2004 are compared, and the consistency of the effects observed gives us considerably confidence in the reliability and validity of the mechanisms of the study. While great care must be taken in the interpretation of the problem distributions, we suggest that they are useful for diagnosing aspects of course design and delivery, and that they may contribute to our general understanding of the process of teaching and learning a first programminglanguage.
Concepts are an essential language feature for generic programming in the large. Concepts allow for succinct expression of constraints on type parameters of generic algorithms, enable systematic organization of proble...
详细信息
Concepts are an essential language feature for generic programming in the large. Concepts allow for succinct expression of constraints on type parameters of generic algorithms, enable systematic organization of problem domain abstractions, and make generic algorithms easier to use. In this paper we present the design of a type system and semantics for concepts that is suitable for non-type-inferencing languages. Our design shares much in common with the type classes of Haskell, though our primary influence is from best practices in the C++ community, where concepts are used to document type requirements for templates in generic libraries. Concepts include a novel combination of associated types and same-type constraints that do not appear in type classes, but that are similar to nested types and type sharing in ML.
暂无评论