Browsing by Subject "Programming languages (Electronic computers)"
Now showing 1 - 4 of 4
- Results Per Page
- Sort Options
Item Extensible language implementation(2002) Kolbly, Donovan Michael; Novak, Gordon S.Item Incorporating domain-specific information into the compilation process(2003-05) Guyer, Samuel Zev; Lin, Yun CalvinDespite many advances in compiler research, traditional compilers continue to suffer from one significant limitation: they only recognize the low-level primitive constructs of their languages. In contrast, programmers increasingly benefit from higher level software components, which implement a variety of specialized domains—everything from basic file access to 3D graphics and parallel programming. The result is a marked difference between the level of abstraction in software development and the level of abstraction in compilation. In this thesis we present the Broadway compiler, which closes this gap. Broadway represents a new kind of compiler, called a library-level compiler, that supports domainspecific compilation by extending the benefits of compiler support to software libraries. The key to our approach is a separate annotation language that conveys domain-specific information about libraries to our compiler, allowing it to treat library routines more like built-in language operations. Using this information, the compiler can perform library-level program analysis and apply library-level optimizations. We explore both the opportunities and challenges presented by library-level compilation. We show that library-level optimizations can increase the performance of several parallel programs written using a highly-tuned parallel linear algebra library. These highlevel optimizations are beyond the capabilities of a traditional compiler and even rival the performance of programs hand-coded by an expert. We also show that our compiler is an effective tool for detecting a range of library-level errors, including several significant security vulnerabilities. Finally, we present a new client-driven pointer analysis algorithm, which provides precise and scalable program analysis to meet the demanding requirements of library-level compilation.Item Knowledge based aids for model construction(1987) Krishnan, R. (Ramayya); Lee, Ronald M.; Lasdon, Leon S., 1939-Recent years have seen the emergence of improved computer-based support for mathematical modeling. However, these systems do not support the transition from the requirements specifications to the model construction phase of the modeling life cycle and require skills that most users of decision support systems do not possess. This research proposes a knowledge-based architecture for constructing models in a dynamic and flexible manner and implements this architecture to support the construction of linear programming models of production, distribution and inventory planning problems. This has involved the design of a declarative problem specification language based on first-order logic, formulation and representation of transformations based on domain-independent modeling principles and the introduction of an object-oriented scheme to represent knowledge used to construct and generate executable specifications of algebraic equations. The proposed architecture applies concepts hitherto unused in dynamic model construction. The specification of the problem in the first-order language yields a logic model which, in addition to serving as input to the model construction process, is used to support structural revision of the problem description and to infer qualitative problem details. Supplementing model construction through features to support model evolution and the deduction of problem details adds an important dimension in light of the increased need for integrated decision support. The representation of knowledge used to construct algebraic equations via an object-oriented scheme provides the capacity to apply domain-independent model building rules instead of instantiating stored equational forms. The significance of this research is its addition of an "intelligent" component to the model management system in a decision support system which facilitates the use of mathematical models by users unfamiliar with mathematical modeling.Item Language and compiler support for mixin programming(2002-05) Cardone, Richard Joseph; Lin, Yun CalvinThe need to reduce the cost of software development and maintenance has been a constant and overriding concern since the advent of electronic computing. The difficulty, and therefore the expense, in programming large software applications is due to the complex interactions and interdependencies in application code. These interdependencies increase costs by making code hard to understand, hard to change, and hard to reuse. For over a half century, the need to reduce code complexity has been the driving force behind the trend to program at higher levels of abstraction with increased code modularity. This dissertation takes a step towards increasing code modularity by showing that mixin generic types can be used effectively to build applications from reusable software components. First, we address issues of language definition and integration. We show how mixins can be integrated into a modern programming language to support a methodology of incremental software construction. We viii identify novel language and compiler features that make programming with mixins convenient and efficient. Second, we address issues of implementation and evaluation. We implement a critical subset of mixin language support in a compiler. We then use our compiler to show that mixins increase code reuse compared to current technologies; to show that application development and maintenance can be simplified using mixins; and to show that our novel language features simplify mixin programming. In addition, we discuss language implementation issues and define a new design pattern useful in mixin programming.