114,062 research outputs found
Application Software, Domain-Specific Languages, and Language Design Assistants
While application software does the real work, domain-specific languages
(DSLs) are tools to help produce it efficiently, and language design assistants
in turn are meta-tools to help produce DSLs quickly. DSLs are already in wide
use (HTML for web pages, Excel macros for spreadsheet applications, VHDL for
hardware design, ...), but many more will be needed for both new as well as
existing application domains. Language design assistants to help develop them
currently exist only in the basic form of language development systems. After a
quick look at domain-specific languages, and especially their relationship to
application libraries, we survey existing language development systems and give
an outline of future language design assistants.Comment: To be presented at SSGRR 2000, L'Aquila, Ital
Canonical Abstract Syntax Trees
This paper presents Gom, a language for describing abstract syntax trees and
generating a Java implementation for those trees. Gom includes features
allowing the user to specify and modify the interface of the data structure.
These features provide in particular the capability to maintain the internal
representation of data in canonical form with respect to a rewrite system. This
explicitly guarantees that the client program only manipulates normal forms for
this rewrite system, a feature which is only implicitly used in many
implementations
Behavioral types in programming languages
A recent trend in programming language research is to use behav- ioral type theory to ensure various correctness properties of large- scale, communication-intensive systems. Behavioral types encompass concepts such as interfaces, communication protocols, contracts, and choreography. The successful application of behavioral types requires a solid understanding of several practical aspects, from their represen- tation in a concrete programming language, to their integration with other programming constructs such as methods and functions, to de- sign and monitoring methodologies that take behaviors into account. This survey provides an overview of the state of the art of these aspects, which we summarize as the pragmatics of behavioral types
ProbRobScene: A Probabilistic Specification Language for 3D Robotic Manipulation Environments
Robotic control tasks are often first run in simulation for the purposes of
verification, debugging and data augmentation. Many methods exist to specify
what task a robot must complete, but few exist to specify what range of
environments a user expects such tasks to be achieved in. ProbRobScene is a
probabilistic specification language for describing robotic manipulation
environments. Using the language, a user need only specify the relational
constraints that must hold between objects in a scene. ProbRobScene will then
automatically generate scenes which conform to this specification. By combining
aspects of probabilistic programming languages and convex geometry, we provide
a method for sampling this space of possible environments efficiently. We
demonstrate the usefulness of our language by using it to debug a robotic
controller in a tabletop robot manipulation environment
- …