Results 21 -
26 of
26
Automatic Construction Of Optimizing, Parallelizing Compilers From Specifications
, 1994
"... : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : ix 1. INTRODUCTION : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 1 2. FRONT END : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 9 2.1 Lexical Analyzers : : : : : : : : : : : : : : : : : : : : ..."
Abstract
- Add to MetaCart
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : ix 1. INTRODUCTION : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 1 2. FRONT END : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 9 2.1 Lexical Analyzers : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 10 2.2 Parsers : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 12 2.3 Intermediate Representation Construction : : : : : : : : : : : : : : : 13 2.4 Language Design : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 14 2.4.1 XPC : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 15 2.4.2 High Performance Fortran : : : : : : : : : : : : : : : : : : : : 17 2.5 Conclusion : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 20 3. INTERMEDIATE REPRESENTATION : : : : : : : : : : : : : : : : : : : 21 3.1 Previous Work : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 22 3.1.1 RTL : : : : : : : : : : : : : : : : : : :...
Decomposing lambda - the Kernel programming language
, 2003
"... The Kernel programming language attempts to expand on the simplicity and versatility of Scheme by exploiting a decomposition of Scheme's lambda constructor into two orthogonal constructors. The primary constructor, called $vau, builds compound combiners that act directly on their unevaluated oper ..."
Abstract
- Add to MetaCart
The Kernel programming language attempts to expand on the simplicity and versatility of Scheme by exploiting a decomposition of Scheme's lambda constructor into two orthogonal constructors. The primary constructor, called $vau, builds compound combiners that act directly on their unevaluated oper- ands ("call-by-text", or opct'ativ, compound combiners); while a second con- structor, called simply wrap, induces evaluation of arguments. This report describes how these constructors work, and explores some of their consequences, including some design differences of Kernel from Scheme that help the programmer to manage the inherent volatility of first-class operative combiners. This report is an expanded form of material presented to the NEPLS 7 conference, held at WPI in October 2002.
Skeletons and the Anatomy of Monads
, 2006
"... Monads are used heavily in Haskell for supporting computational effects, and the language offers excellent support for defining monadic computations. Unfortunately, defining a monad remains a difficult challenge. There are no libraries that a programmer can use to define a monad that is not a compos ..."
Abstract
- Add to MetaCart
Monads are used heavily in Haskell for supporting computational effects, and the language offers excellent support for defining monadic computations. Unfortunately, defining a monad remains a difficult challenge. There are no libraries that a programmer can use to define a monad that is not a composition of existing monad transformers; therefore every such effort must start from scratch despite that all monads share the same structure and need to satisfy the same minimum set of properties. I propose
Presentation Techniques for more Expressive Programs
, 2008
"... We introduce a class of program editors that present a program using a rich set of transformations; we call these kinds of editors composable presentation editors. Proper use of these kinds of editors appears to lead to more expressive programs—programs whose structure are aligned with the problem t ..."
Abstract
- Add to MetaCart
We introduce a class of program editors that present a program using a rich set of transformations; we call these kinds of editors composable presentation editors. Proper use of these kinds of editors appears to lead to more expressive programs—programs whose structure are aligned with the problem they are trying to solve. By default, the composable presentation editor presents program elements textually as concrete syntax and enables typical editor commands on the program. Metadata on program elements control how the transformations are applied. Customized metadata can re-order, pictorialize, collapse, duplicate, or expand the displayed form of program elements and can additionally alter the available editor commands. We have developed a set of presentation techniques to be used by presentation designers (i.e., the programmers who design how a program is presented in the editor). These techniques relate to well-understood programming language design, editor design, and programming best-practices techniques including scoping, higher order functions, refactoring, prettyprinting, naming conventions, syntax highlighting, and text hovers. We introduce two implementations of composable presentation editors and a number of examples showing how programs can be made more expressive when presentation techniques are properly used. The first implementation is the ETMOP, an open editor, where a metaobject protocol is provided that allows language and editor designers to customize the way program elements are displayed. These customizations are called presentation extensions and the corresponding presentation extension protocol acts in a way similar to the way that syntax macros extend the syntax of a language. The second implementation is Embedded CAL, a closed editor that uses these presentation techniques to embed one language (CAL) inside a host language (Java) through the use of presentation techniques, without changing the syntax or compiler of either language.

