Interactive C Environments
wrp, editor
wrp_ice-1 at yahoo dot com
Introduction
In the 1970s and 80s, the success of interactive systems like APL, Lisp, and Smalltalk inspired several projects to develop an interactive environment for C. This software preservation project is for any materials related to the implementation of interactive systems for C and similar languages. We are looking for binaries, source code, manuals, technical reports, mailing list archives, or anything else with relevant information. We would appreciate any help in contacting the owners of copyrighted materials so that we could get permission to post them here.
What is interactive C?
People often classify languages by syntax, so a "C-like language" would mean one with curly bracket syntax. But from an implementation perspective, any syntax is just sugar over an abstract syntax tree. For the purpose of this collection, we classify a language as C-like according to its use of direct operations on memory locations, i.e. pointers. So in addition to the C/C++/Objective-C family, we could include languages like PL/I, BCPL, BLISS, and Modula-2.
An interactive system is one in which you can change the code structure of a running program without losing program state and can preserve the changed code. Smalltalk is a classic example. It seems that no interactive implementation of a C-like language managed to be fully like Smalltalk, and the projects collected here are included because they implement interactivity to at least some extent.
Commercial Projects
C-terp (Gimpel Software)
Ch (SoftIntegration)
Cin (AT&T)
HiSoft C (HiSoft / Loriciels)
Instant-C (Rational Systems / Tenberry Software)
Integral C (Tektronix)
Interactive C (Newton Research Labs)
Interactive-C (IMPACC Associates)
Macintosh Pascal (Think Technologies / Symantec)
RUN/C (Age of Reason)
Saber-C / CodeCenter (Saber Software / CenterLine Software / IPS)
Safe-C (Catalytix Corporation)
Non-Commercial Projects
Barbados (Tim Cooper)
C-REPL (Evan Martin)
CINT (Masaharu Goto)
Cling (CERN)
EiC (Edmond J. Breen)
IGCC (Andy Balaam)
Incremental Compiler GCC (Tom Tromey)
PicoC (Zik Saleeba)
Thetis (Stanford Computer Science Dept.)
UnderC (Steve Donovan)
General Bibliography
- Atkinson, L.V., J.J. McGregor, and S.D. North. "Context sensitive editing as an approach to incremental compilation." The Computer Journal 24, no. 3 (1981): 222-229. PDF 4.6 MB
- Austin, Todd Michael. 1997. Method for detecting computer memory access errors. U.S. Patent 5,644,709, filed April 21, 1994, and issued July 1, 1997. PDF 631 KB
- Brown, P.J. Writing Interactive Compilers and Interpreters. Chichester: Wiley, 1979.
- Christian, Kaare. C. PC Magazine, October 29, 1985. Google Books
- Cooper, Tim B. "Barbados: An Integrated Persistent Programming Environment." PhD diss., University of Sydney, 1996. PDF 505 KB
- Cooper, Tim, and Michael Wise. "Achieving incremental compilation through fine-grained builds." Software: Practice and Experience 27, no. 5 (1997): 497-517. PDF 166 KB
- Crowe, Malcolm K. "Dynamic compilation in the Unix environment." Software -- Practice and Experience 17, no. 7 (1987): 455-467. PDF 775 KB
- Davidson, Jack W., and Joseph V. Gresch. "Cint: A RISC interpreter for the C programming language." In Proceedings of the SIGPLAN '87 Symposium on Interpreters and Interpretive Techniques (1987): 189-198. PDF 771 KB
- Engels, Gregor. "A hybrid interpreter in a software development environment." In Proceedings of the 1st European Software Engineering Conference on ESEC (1987): 80-88. PDF 544 KB
- Engels, Gregor, Thorsten Janning, and Wilhelm Schafer. "A highly integrated tool set for program development support." In SIGSMALL '88 Proceedings of the 1988 ACM SIGSMALL/PC symposium on ACTES, 1-10. PDF 1.5 MB
- Feuer, Alan. "si -- an interpreter for the C language." In Proceedings of the 1985 Usenix Summer Conference, Portland, OR (1985): 47-55. PDF 533 KB
- Freund, Stephen N., and Eric S. Roberts. "Thetis: An ANSI C programming environment designed for introductory use." ACM SIGCSE Bulletin 28, no. 1 (1996): 300-304. PDF 253 KB
- Fritzson, Peter. "Symbolic debugging through incremental compilation in an integrated environement." The Journal of Systems and Software 3 (1983): 285-294. PDF 1.2 MB
- Gansner, Emden R., Joseph R. Horgan, D.J. Moore, P.T. Surko, D.E. Swartout, and John H. Reppy. "Syned -- A language-based editor for an interactive programming environment." In Digest of Papers, Spring COMPCON 83, 26th IEEE Computer Society International Conference, San Francisco, California (1983): 406-410. PDF 31 KB
- Goodnow, James E. II, Thaddeus J. Kowalski, and James R. Rowland. 1996. Method and apparatus for detecting memory access errors. U.S. Patent 5,590,329, filed February 4, 1994, and issued December 31, 1996. PDF 2.7 MB
- Greenberg, Ross M. Interpreters: Confronting the Turbo Challenge. PC Magazine, September 13, 1988. Google Books
- Hastings, Reed. 1994. Method for inserting new machine instructions into preexisting machine code to monitor preexisting machine access to memory. U.S. Patent 5,335,344, filed November 2, 1992, and issued August 2, 1994. PDF 316 KB
- Hastings, Reed. 1998. Method and apparatus for modifying relocatable object code files and monitoring programs. U.S. Patent 5,835,701, filed May 31, 1996, and issued November 10, 1998. PDF 1.2 MB
- Heller, Martin. Just add water (Instant-C 4.0). Byte Magazine, June 1990. PDF 549 KB
- Ho, W. Wilson, and Ronald A. Olsson. "An approach to genuine dynamic linking." Software -- Practice and Experience 21, no. 4 (1991): 375-390. PDF 97 KB
- Kahrs, Mark. "Implementation of an interactive programming system." ACM SIGPLAN Notices - Proceedings of the 1979 SIGPLAN Symposium on Compiler Construction 14, no. 8 (1979): 76-82. PDF 512 KB
- Kaufer, Stephen, Russell Lopez, and Sesha Pratap. "Saber-C: An interpreter-based programming environment for the C language." In Proceedings of the 1988 Usenix Summer Conference, San Francisco, CA (1988): 161-171. PDF 779 KB
- Kaufer, Stephen L., Trivelor T. Ramgopal, and Arunachallam Sivakumar. 1998. Function simulation. U.S. Patent 5,812,828, filed April 24, 1997, and issued September 22, 1998. PDF 1.4 MB
- Klint, Paul. "Interpretation techniques." Software -- Practice and Experience 11 (1988): 963-973. PDF 130 KB
- Kowalski, Thaddeus J., Yean-Ming Huang, and Helen V. Diamantidis. "An interpretive environment for operations support systems." AT&T Technical Journal 69 (1990): 42-51. PDF 2.2 MB
- McKeeman, William M., and Shota Aki. 1993. Incremental linking in source-code development system. U.S. Patent 5,193,191, filed June 30, 1989, and issued March 9, 1993. PDF 2 MB
- Medina-Mora, Raul, and Peter H. Feiler. "An incremental programming environment." IEEE Transactions on Software Engineering SE-7, no. 5 (1981): 472-482. PDF 759 KB
- Nordstrom, Bengt, and Ake Wikstrom. "The design of an interactive program development system for Pascal." Software -- Practice and Experience 14, no. 2 (1984): 177-190. PDF 984 KB
- Popple, James. "Incremental Compilation and Its Implementation in the PECAN Programming Environment Generator." Honours thesis, Australian National University, 1987. Popple
- Proebsting, Todd A. "Optimizing an ANSI C interpreter with superoperators." In POPL '95: 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (1995): 322-332. PDF 165 KB
- Racko, Roland. Instant-C 2.0 links code with external libraries. PC Magazine, December 9, 1986. Google Books
- Ross, Graham. "Integral C -- A practical environment for C programming." In Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments (SIGPLAN Notices) 22 (1986): 42-48. PDF 727 KB
- Sandewall, Erik. "Programming in an interactive environment: The Lisp experience." ACM Computing Surveys 10, no. 1 (1978): 35-71. PDF 4.1 MB
- Sebesta, Robert W. "Conversational programming systems." Journal of Pascal, Ada & Modula-2 4 (1985): 9-22. PDF 0 KB
- Steffen, Joseph L. "Adding run-time checking to the Portable C Compiler." Software -- Practice and Experience 22, no. 4 (1992): 305-316. PDF 759 KB
- Unger, John. Four C language interpreters. Byte Magazine, June 1987. PDF 1.5 MB
- Unger, John. Letters. Byte Magazine, September 1987. PDF 733 KB
- Vose, G. Michael. Macintosh Pascal. Byte Magazine, June 1984. PDF 712 KB
- Vose, G. Michael. C-language development tools. Byte Magazine, December 1984. PDF 1.1 MB
- White, Neil H., and George M. Haylett. "Advanced diagnostics: A PASCAL interactive system." Information and Software Technology 29, no. 2 (1987): 75-80. PDF 440 KB
- Wilander, Jerker. "An interactive programming system for Pascal." BIT Numerical Mathematics 20, no. 2 (1980): 163-174. PDF 731 KB