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...

Full description

Bibliographic Details
Main Author: Eisenberg, Andrew David
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