Concrete syntax for data objects in functional languages

11Citations
Citations of this article
11Readers
Mendeley users who have this article in their library.

Abstract

Introduction: Many functional languages have a construction to define inductive data types [Hoa75] (also called general structured types [Pey87], structures [Lan64], datatypes [Mil84] and free algebras [GTWW77]). An inductive definition of a data type can also be seen as a grammar for a language and the elements of the data type as the phrases of the language. So defining an inductive data type can be seen as introducing an embedded language of values into the programming language. This correspondence is however not fully exploited in existing functional languages. The elements can presently only be written in a very restricted form. They are just the parse trees of the elements written in prefix form. A generalization, that we will consider in this paper, is to allow the elements to be written in a more general form. Instead of directly writing the parse trees of the embedded language, we would like to use a more concrete syntactical form and let an automatically generated parser translate the concrete syntactical form to the corresponding parse tree. We think that this is especially useful when we manipulate languages in programs, for example, when implementing compilers, interpreters, program transformation systems, and programming logics. It is also convenient if we want to use the concrete syntax for other kinds of data in a program.

Cite

CITATION STYLE

APA

Aasa, A., Petersson, K., & Synek, D. (1988). Concrete syntax for data objects in functional languages. In Proceedings of the 1988 ACM Conference on LISP and Functional Programming, LFP 1988 (pp. 96–105). Association for Computing Machinery, Inc. https://doi.org/10.1145/62678.62688

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free