Presentation techniques for more expressive programs
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...
Main Author: | |
---|---|
Format: | Others |
Language: | English |
Published: |
University of British Columbia
2008
|
Subjects: | |
Online Access: | http://hdl.handle.net/2429/900 |
id |
ndltd-UBC-oai-circle.library.ubc.ca-2429-900 |
---|---|
record_format |
oai_dc |
spelling |
ndltd-UBC-oai-circle.library.ubc.ca-2429-9002018-01-05T17:22:44Z Presentation techniques for more expressive programs Eisenberg, Andrew David Programming languages Metaobject protocol Aspect oriented programming Object oriented programming Software development environments Expressiveness programs 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 presenta- tion 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. Science, Faculty of Computer Science, Department of Graduate 2008-06-16T18:49:41Z 2008-06-16T18:49:41Z 2008 2008-11 Text Thesis/Dissertation http://hdl.handle.net/2429/900 eng Attribution-NonCommercial-NoDerivatives 4.0 International http://creativecommons.org/licenses/by-nc-nd/4.0/ 2051259 bytes application/pdf University of British Columbia |
collection |
NDLTD |
language |
English |
format |
Others
|
sources |
NDLTD |
topic |
Programming languages Metaobject protocol Aspect oriented programming Object oriented programming Software development environments Expressiveness programs |
spellingShingle |
Programming languages Metaobject protocol Aspect oriented programming Object oriented programming Software development environments Expressiveness programs Eisenberg, Andrew David Presentation techniques for more expressive programs |
description |
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 presenta- tion 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. === Science, Faculty of === Computer Science, Department of === Graduate |
author |
Eisenberg, Andrew David |
author_facet |
Eisenberg, Andrew David |
author_sort |
Eisenberg, Andrew David |
title |
Presentation techniques for more expressive programs |
title_short |
Presentation techniques for more expressive programs |
title_full |
Presentation techniques for more expressive programs |
title_fullStr |
Presentation techniques for more expressive programs |
title_full_unstemmed |
Presentation techniques for more expressive programs |
title_sort |
presentation techniques for more expressive programs |
publisher |
University of British Columbia |
publishDate |
2008 |
url |
http://hdl.handle.net/2429/900 |
work_keys_str_mv |
AT eisenbergandrewdavid presentationtechniquesformoreexpressiveprograms |
_version_ |
1718581353676537856 |