Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cs.utexas.edu!uunet!mcsun!hp4nl!philapd!ssp11!roelof From: roelof@idca.tds.PHILIPS.nl (R. Vuurboom) Newsgroups: comp.lang.misc Subject: Re: The Fundamental Concept of Programming language X Summary: Primitive vs Fundamental Keywords: programming languages, abstractions Message-ID: <581@ssp11.idca.tds.philips.nl> Date: 2 Jan 90 12:08:40 GMT References: <1470@mdbs.UUCP> Organization: Philips Telecommunication and Data Systems, The Netherlands Lines: 34 In article <1470@mdbs.UUCP> wsmith@mdbs.UUCP (Bill Smith) writes: > >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. > >I think one of the weaknesses of this idea is that many language have >more than one fundmamental concept and thus argument can begin what >the true fundamental concept is. (In other words, the idea is ill defined >for some langauges.) > I'm wondering if you're sufficiently diffentiating between the ideas of "primitive concept" and "fundamental concept". A concept can be called primitive if it is generally not profitable to break it up into more primitive parts in that particular world of discourse. In C ints and doubles can be considered primitives. In Lisp, lists would be considered by many to be a primitive concept. Fundamental concepts (imho) are those concepts that provide guidelines or viewpoints in the associated world of discourse. They provide the methods and rationalization for construction of more complex concepts and their corresponding abstraction and intercourse. In C data abstraction (via typdef for example) and procedure abstraction (function definition) are to me the fundamental concepts although pointers take a good second place (pointing to an object is a strategy of object naming). A (the?) fundamental _implementation_ concept of C (but also Algol and Pascal) are that these languages have a stack-based run-time environment.