Journal Article10.1002/SPE.4380170202
Debugging programs that use macro-oriented data abstractions
Jacob Katzenelson,A. Strominger +1 more
5
TL;DR: Enhanced C is a set‐oriented, extensible, C‐like language that uses data abstractions to define new types, called clusters, that are macro‐like devices that perform substitution on the typed syntax tree.
read more
Abstract: Enhanced C (EC) is a set-oriented, extensible, C-like language. EC uses data abstractions to define new types. These data abstractions, called clusters, are macro-like devices that perform substitution on the typed syntax tree. Debugging programs that use clusters raise problems that are not encountered in ordinary programming languages. At compile time there is a need to determine and report whether the macro expansion will result in a legal program before this expansion actually takes place. At run-time the problems are how to account for replaced statements and how to handle variables whose types have been established by the clusters, variables that disappear, or variables whose names have been changed.
This article presents these problems and their solutions as implemented by the EC compiler and the EC symbolic debugger.
Similar debugging problems appear in other languages: The need to handle variables at run time is common to all languages that support data abstraction even if the abstractions are procedure oriented; also, a mild form of the problem of the replaced statement appears in inline procedure substitution of Ada. The solutions developed for the EC debugger apply to these cases as well.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
A parallelization of adaptive task partitioning algorithms
John A. Kapenga,Elise de Doncker +1 more
- 01 Jun 1988
TL;DR: An adaptive task partitioning scheme for MIMD architectures is investigated, and a proto-type of a two-dimensional integration method has been implemented in this manner using a set of high-level macros, layered over the Argonne macro package, which provides the primitives in the adaptive partitions scheme.
17
Patent
Generating symbolic debug information in a translator environment
Dmitry Lenkokv,Shankar Unni,Michey Mehta,Mark W Mcdowell,Manoj Dadoo,Bruno Melli +5 more
- 19 Sep 1991
TL;DR: In this article, the authors present a computer-based system and method for generating meaningful symbolic debug information in translator-based software compilation systems, which includes a translator (302), a compiler (114), a merger (312), and a debugger (320).
9
Inertia—the reluctance of code motion?
TL;DR: This paper highlights points to support the "inertial argument", and raises questions to be explored in relation to it.
References
•Book
The C++ Programming Language
Bjarne Stroustrup
- 01 Jan 1985
TL;DR: Bjarne Stroustrup makes C even more accessible to those new to the language, while adding advanced information and techniques that even expert C programmers will find invaluable.
8.1K
The C programming language
Brian W. Kernighan,Dennis M. Ritchie +1 more
- 01 Jan 1978
TL;DR: This ebook is the first authorized digital version of Kernighan and Ritchie's 1988 classic, The C Programming Language (2nd Ed.), and is a "must-have" reference for every serious programmer's digital library.
2.2K
Introduction to enhanced C (EC)
TL;DR: The main goals of EC are to design a set‐oriented, extensible, C‐like language and to build a translator for this language that produces efficient run‐time code.
17
Early experience with Mesa
TL;DR: The experiences of Mesa's first users are discussed in this paper, and some implications for Mesa and similar programming languages are suggested, including data-structuring facilities in Mesa, an equivalence algorithm for types and type coercions, the benefits of the type system and why it is breached occasionally.
Abstraction mechanisms in CLU
TL;DR: This paper provides an introduction to the abstraction mechanisms in CLU by means of programming examples, and it is shown how CLU programs may be written to use and implement abstractions.
Related Papers (5)
Ron K. Cytron,Andy Lowry,F. Kenneth Zadeck +2 more
- 01 Jan 1986
Henrik Nilsson
- 01 Jan 1998
Bernard J. Pope
- 14 Aug 2004