Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Ralph E. Griswold is active.

Publication


Featured researches published by Ralph E. Griswold.


ACM Transactions on Programming Languages and Systems | 1981

Generators in Icon

Ralph E. Griswold; David R. Hanson; John T. Korb

Icon is a new programming language that includes a goal-directed expression evaluation mechanism. This mechanism is based on generators--expressions that are capable of producing more than one value. If the value produced by a generator does not lead to a successful result, the generator is automatically activated for an alternate value. Generators form an integral part of Icon and can be used anywhere. In addition, they form the basis for the string scanning facility and subsume some of the control expressions found in other languages. Several examples are given.


Communications of The ACM | 1978

The SL5 procedure mechanism

David R. Hanson; Ralph E. Griswold

This paper describes an integrated procedure mechanism that permits procedures to be used as recursive functions or as coroutines. This integration is accomplished by treating procedures and their activation records (called environments) as data objects and by decomposing procedure invocation into three separate components at the source-language level. In addition, argument binding is under the control of the programmer, permitting the definition of various methods of argument transmission in the source language itself. The resulting procedure mechanism, which is part of the SL5 programming language, is well suited to goal-oriented problems and to other problems that are more readily programmed by using coroutines. Several examples are given.


ACM Transactions on Programming Languages and Systems | 1980

An Alternative to the Use of Patterns in String Processing

Ralph E. Griswold; David R. Hanson

SNOBOL4 is best known for its string processing facilities, which are based on patterns as data objects. Despite the demonstrated success of patterns, there are many shortcomings associated with their use. The concept of patterns in SNOBOL4 is examined and problem areas are discussed. An alternative method for high-level string processing is described. This method, implemented in the programming language Icon, employs generators, which are capable of producing alternative values. Generators, coupled with a goal-driven method of expression evaluation, provide the string processing facilities of SNOBOL4 without the disadvantages associated with patterns. Comparisons between SNOBOL4 and Icon are included and the broader implications of the new approach are discussed.


Sigplan Notices | 1977

An overview of SL5

Ralph E. Griswold; David R. Hanson

At the h19her 1eve1, the 5L5 1an9ua9e pr0v1de5 a t001 f0r exp10r1n9 a var1ety 0f Pr09ramm1n9 techn14ue5 that are awkward 0r 1mpract1ca1 1n 0ther 1an9ua9e5. At the 10wer, 1mp1e-mentat10n 1eve1, 5L5 15 0r9an12ed 1nt0 m0du1e5 that are 60und at 10ad t1me. 7here are a num6er 0f feature5 that c0n5t1tute the 5L5 1an9ua9e nuc1eu5. 0ther m0du1e5 can 6e deve10ped 1ndepen-dent1y and appended t0 the nuc1eu5 t0 pr0v1de 1an9ua9e var1ant5 and exten510n5. 7hu5, 1nd1v1dua1 re5earcher5 can w0rk 0n 1nde-pendent (and p055161y 1nc0mpat161e) feature5 w1th0ut 1nterfer1n9 *7h15 w0rk wa5 5upp0rted 6y the Nat10na1 5c1ence F0undat10n under 6rant DCR75-01307.


Sigplan Notices | 1979

The icon programming language: an overview

Ralph E. Griswold; David R. Hanson; John T. Korb

1. Introduction 1 .1 Philosophy and Design Goal s Icon is a programming language designed for nonnumerical applications with an emphasis on string processing. Icon inherit s the philosophical bases of SNOBOL4 [1] and SL5 [2] : high-level , sometimes novel features ; ease and convenience of use ; and run-time flexibility. Unlike SNOBOL4 and SL5, Icon is intended to b e practical for production applications. The inherent conflic t between the philosophical goals and the size and speed necessar y for economic practicality is handled by including optional declarations . Consistent with the philosophy of the language, th e defaults provided in the absence of declarations provide th e flexibility needed for experimental and research applications. Declarations can be added to gain greater efficiency for production applications. Icon emphasizes expressive power in control structures. I t resembles SL5 rather than SNOBOL4 in this respect, although ne w mechanisms allow a smaller repertoire of basic constructs tha n that of SL5. Like SL5, Icon expressions return a result consisting of a value and a signal. Values are used in the norma l computational manner, while signals drive control structures. An important component of Icon is goal-directed evaluation o f expressions, called generators. Generators are capable of producing alternative values as demanded by circumstances. Th e goal-directed control structures and generators facilitate programming of search algorithms and they eliminate the need fo r patterns and scanning environments used for string analysis i n SNOBOL4 and SL5. In Icon, string scanning operations can b e freely mixed with other operations, integrating string processin g as a natural part of the language, as opposed to a separate facility as in SNOBOL4 and SL5 [3] .


Software - Practice and Experience | 1994

A framework for execution monitoring in Icon

Clinton L. Jeffery; Ralph E. Griswold

Execution monitors are widely used during software development for tasks that require an understanding of program behavior, such as debugging and profiling. The Icon programming language has been enhanced with a framework that supports execution monitoring. Under the enhanced translator and interpreter, neither source modification nor any special compiler command‐line option is required in order to monitor an Icon program. Execution monitors are written in the source language, instead of the implementation language. Performance, portability, and detailed access to the monitored programs state are achieved using a coroutine model and dynamic loading rather than the separate‐process model employed by many conventional monitoring systems.


programming language design and implementation | 1987

A recursive interpreter for the Icon programming language

Janalee O'Bagy; Ralph E. Griswold

The implementation of the Icon programming language is more interesting and difficult than the implementation of many other programming languages because an expression in Icon can generate a sequence of results. The implementation therefore must support control backtracking in expression evaluation. There also are several novel control structures related to generators. Because expression evaluation is limited lexically, a full coroutine mechanism is not needed and expression evaluation can be handled in a stack-like fashion.The implementation of Icon consists of a virtual machine with a stack-based architecture and an interpreter that executes the virtual machine instructions. There have been several different interpreters for Icons virtual machine. This paper describes a new approach in which the interpreter is called recursively whenever the context for expression evaluation changes. This recursive interpreter has the advantage of being conceptually clear and flexible without sacrificing efficiency.


Software - Practice and Experience | 1992

An optimizing compiler for the Icon programming language

Kenneth Walker; Ralph E. Griswold

Compiling code for the Icon programming language presents several challenges, particularly in dealing with types and goal‐directed expression evaluation. In order to produce optimized code, it is necessary for the compiler to know much more about operations than is necessary for the compilation of most programming languages. This paper describes the organization of the Icon compiler and the way it acquires and maintains information about operations. The Icon compiler generates C code, which makes it portable to a wide variety of platforms and also allows the use of existing C compilers for performing routine optimizations on the final code. A specially designed implementation language, which is a superset of C, is used for writing Icons run‐time system. This language allows the inclusion of information about the abstract semantics of Icon operations and their type‐checking and conversion requirements. A translator converts code written in the run‐time language to C code to provide an object library for linking with the code produced by the Icon compiler. The translation process also automatically produces a database that contains the information the Icon compiler needs to generate and optimize code. This approach allows easy extension of Icons computational repertoire, alternate computational extensions, and cross compilation.


Software - Practice and Experience | 1988

The implementation of generators and goal-directed evaluation in icon

Janalee O'Bagy; Ralph E. Griswold

Two features of the Icon programming language strongly influence its implementation: generators and goal‐directed evaluation. A generator is an expression that is capable of producing a sequence of results. In goal‐directed evaluation, the results of generators are produced automatically in an attempt to complete computations successfully. This paper describes the generated code and run‐time support for generators, goal‐directed evaluation, and related control structures.


IEEE Transactions on Software Engineering | 1983

Measuring the Performance and Behavior of Icon Programs

Cary A. Coutant; Ralph E. Griswold; David R. Hanson

The importance of the ability to measure the performance of programs written in high-level languages is well known. Performance measurement enables users to locate and correct program inefficiencies where automatic optimizations fail and provides a tool for understanding program behavior. This paper describes performance measurement facilities for the Icon programming language, and shows not only how these facilities provided insight into program behavior, but also how they were used to improve the implementation.

Collaboration


Dive into the Ralph E. Griswold's collaboration.

Top Co-Authors

Avatar

Clinton L. Jeffery

University of Texas at San Antonio

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge