An ancient tradition says that one may teach with questions and that teachingby questioning has advantages compared to teaching by telling. This is the coreof the Socratic Method.1 At the same time, computer presentat...
详细信息
An ancient tradition says that one may teach with questions and that teachingby questioning has advantages compared to teaching by telling. This is the coreof the Socratic Method.1 At the same time, computer presentation opens new possibilitiesfor a textbook that responds to the student’s use of computers and thatcan initiate the interaction by posing a question for the student.2 With the additionof javaScript and other technologies, such interactive material can be presentedon the World Wide Web.
An extension language is an interpreted programminglanguage designed to be embedded in a domain-specific framework. The addition of domain-specific primitive operations to an embedded extension language transforms th...
详细信息
ISBN:
(纸本)1880446278
An extension language is an interpreted programminglanguage designed to be embedded in a domain-specific framework. The addition of domain-specific primitive operations to an embedded extension language transforms that vanilla extension language into a domain-specific language. The LUxWORKS processor simulator and debugger from Lucent uses Tcl as its extension language. After an overview of extension language embedding and LUxWORKS experience, this paper looks at using java reflection and related mechanisms to solve three limitations in extension language - domain framework interaction. The three limitations are gradual accumulation of ad hoc interface code connecting an extension language to a domain framework, over-coupling of a domain framework to a specific extension language, and inefficient command interpretation. java reflection consists of a set of programming interfaces through which a software module in a java system can discover the structure of classes, methods and their associations in the system. java reflection and a naming convention for primitive domain operations eliminate ad hoc interface code by supporting recursive inspection of a domain command interface and translation of extension language objects into domain objects. java reflection, name-based dynamic class loading, and a language-neutral extension language abstraction eliminate language over-coupling by transforming the specific extension language into a runtime parameter. java reflection and command objects eliminate inefficiency by bypassing the extension language interpreter for stereotyped commands. Overall, java reflection helps to eliminate these limitations by supporting reorganization and elimination of handwritten code, and by streamlining interpretation.
A Hoare-style programming logic for the sequential kernel of java is presented. It handles recursive methods, class and interface types, subtyping, inheritance, dynamic and static binding, aliasing via object referenc...
详细信息
ISBN:
(纸本)3540656995
A Hoare-style programming logic for the sequential kernel of java is presented. It handles recursive methods, class and interface types, subtyping, inheritance, dynamic and static binding, aliasing via object references, and encapsulation. The logic is proved sound w.r.t. an SOS semantics by embedding both into higher-order logic.
An analysis is provided for java programs that reverse engineers parameterized types into existing java code. This analysis propagates precise type information about the contents of container objects. As an applicatio...
详细信息
An analysis is provided for java programs that reverse engineers parameterized types into existing java code. This analysis propagates precise type information about the contents of container objects. As an application, the analysis can be used to justify the safe removal of downcasts that are guaranteed to succeed. Another application is in automatically reverse engineering parameterized types into existing java libraries, so that they can be used in java dialects with parameterized types.
Having developed the experimental speech analysis tools "SPANEX' [5], we have developed "SPANNET", a program for the visualization and manipulation of speech analysis parameter via Internet in our p...
详细信息
We present methods for safe and correct programming for concurrent threads in java. The methods are based on the principles of Concurrent Sequential Processes (CSP). We demonstrate the use of tools which provide the s...
详细信息
New software technologies and languages have made easier (and maybe less error-prone) the development of distributed applications. Especially java allows straightforward use of connection-oriented communications, typi...
详细信息
At first glance, java monitors appear easy to use. However, a deeper analysis reveals that they are surprisingly tricky, suffer from subtle race conditions, and are actually a low-level synchronization tool in stark c...
详细信息
We discuss how the specification of the PLAN programminglanguage supports the design objectives of the language. The specification aims to provide a mathematically precise operational semantics that can serve as a st...
详细信息
java programs are routinely transmitted over low-bandwidth network connections as compressed class file archives (i.e., zip files and jar files). Since archive size is directly proportional to download time, it is des...
详细信息
java programs are routinely transmitted over low-bandwidth network connections as compressed class file archives (i.e., zip files and jar files). Since archive size is directly proportional to download time, it is desirable for applications to be as small as possible. This paper is concerned with the use of program transformations such as removal of dead methods and fields, inlining of method calls, and simplification of the class hierarchy for reducing application size. Such 'extraction' techniques are generally believed to be especially useful for applications that use class libraries, since typically only a small fraction of a library's functionality is used. By 'pruning away' unused library functionality, application size can be reduced dramatically. We implemented a number of application extraction techniques in Jax, an application extractor for java, and evaluate their effectiveness on a set of realistic benchmarks ranging from 27 to 2,332 classes (with archives ranging from 56,796 to 3,810,120 bytes). We report archive size reductions ranging from 13.4% to 90.2% (48.7% on average).
暂无评论