From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=BAYES_00,INVALID_DATE autolearn=no autolearn_force=no version=3.4.4 Path: utzoo!attcan!uunet!lll-winken!csd4.milw.wisc.edu!uxc!uxc.cso.uiuc.edu!uxd.cso.uiuc.edu!uxe.cso.uiuc.edu!mcdonald From: mcdonald@uxe.cso.uiuc.edu Newsgroups: comp.lang.ada Subject: Re: Ada vs LISP vs C vs ... Message-ID: <49700002@uxe.cso.uiuc.edu> Date: 17 Mar 89 23:05:00 GMT References: <8903161704.AA05024@ti.com> Nf-ID: #R:<8903161704.AA05024@ti.com>:-27:uxe.cso.uiuc.edu:49700002:000:1648 Nf-From: uxe.cso.uiuc.edu!mcdonald Mar 17 17:05:00 1989 List-Id: >The first thing we must do is agree on the definition of the term "general >purpose language." Opinions will vary, but in general the characteristics of >such a language are that it can 1.) add, subtract, multiply, and divide. >2.) store the results of the above operations. 3.) Branch to one of two >different program paths based on the results of the above operations. >Anything else is gravy, including bitwise logical operations (some of which >are *damn* hard in Ada!) The outcome of this is, technically, you can do >anything in any "general purpose" language, and you can do it without writing >a compiler or interpretter for some other language. I would like to propose one thing that a "general purpose" language should allow: incremental compilation. That is, it should be possible, in a legal program, to write a program such that, at run time, a user can input code in the language, and have it compiled and execute, and be able to do anything a programmer could do feeding the input into a compiler. This need only be true "in principle", as obviously for a large language writing a compiler is a large task. I am not aware of any (normally compiled as opposed to interpreted) languages where this is true. Forth comes close, but C and Fortran and Cobol and Pascal and friends all seem to make it impossible, although it takes only a tiny little change to C (i.e. make it legal to cast a data pointer to a function pointer, and be able to execute that function) to make it possible there. For many C implementation it is de facto possible. What about Ada? (I have not the foggiest idea about the answer.) Doug McDonald