Xref: utzoo comp.lang.misc:3899 comp.lang.c:25094 Path: utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!uunet!mcsun!ukc!icdoc!syma!aarons From: aarons@syma.sussex.ac.uk (Aaron Sloman) Newsgroups: comp.lang.misc,comp.lang.c Subject: Re: The Fundamental Concept of Programming language X Keywords: programming languages, abstractions Message-ID: <1993@syma.sussex.ac.uk> Date: 15 Jan 90 09:31:17 GMT References: <1470@mdbs.UUCP> Organization: School of Cognitive & Computing Sciences, Sussex Univ. UK Lines: 52 wsmith@mdbs.UUCP (Bill Smith) writes: > Date: 29 Dec 89 19:40:36 GMT > Organization: MDBS Inc., Lafayette, IN > > I have an idea regarding programming language design that I would > like to toss out in order to see how accurately it describes the > high level thinking that goes into a new programming language. > > The idea is "fundamental concept." The fundamental concept of > a language is the data structure, control structure or style issue > that distinguishes the language and must be understood in detail before > proficient use of the programming language can begin. > POP-11 Block-structure with multi-bracket syntax, collection of abnormal exit procedures (chain, exitfrom, exitto), use of "open" stack (Like Forth), "dynamic local expressions", lexical and dynamic binding, most kinds of numbers, records, vectors, arrays, strings, "words" (in a dictionary) procedures as data objects, stream processing via repeaters and consumers, list processing including pattern matcher, dynamic lists (limited lazy evaluation), lightweight processes, properties, class-procedures, syntax extendable by code-planting as well as macro expansion, autoloadable libraries, OOP subsystem, incremental compiler, screen editor as a sub-routine. (AIM: an easy language for beginners that "grows" as you learn, and remains useful for advanced R&D). Actually - that list applies only to Poplog Pop-11. Alphapop (Byte May 1988) and earlier dialects (POP2, POP-10, WPOP) contain a subset. All dialects of POP have at least the open stack, dynamic binding of variables, garbage collector, incremental compilation, records, arrays, vectors, strings, words, list processing, partial application. Also, I have mixed up language features with other features. But from the point of view of a user there's no sharp boundary. Aaron Sloman, School of Cognitive and Computing Sciences, Univ of Sussex, Brighton, BN1 9QH, England EMAIL aarons@cogs.sussex.ac.uk aarons%uk.ac.sussex.cogs@nsfnet-relay.ac.uk aarons%uk.ac.sussex.cogs%nsfnet-relay.ac.uk@relay.cs.net BITNET: aarons%uk.ac.sussex.cogs@uk.ac UUCP: ...mcvax!ukc!cogs!aarons or aarons@cogs.uucp