# User talk:K.lee/Archived local PL thingie

I added Fortran 2003 as a procedural language with OOP grafted on top. Fortran 2003 has classes with inheritance. "Beliavsky" Dec 24, 2004.

I added Fortran to the list of general purpose languages. Since Fortran 77 added strings and control structures, Fortran 90 adds user-defined types, and Fortran 2003 adds object-oriented programming, I think it qualifies. "Beliavsky" Dec 24, 2004.

You wrote "Descendants of all three [Fortran, Cobol, Lisp] are still in use today, although Lisp [] has influenced later languages to a much greater extent than the other two." I wonder about this. I think there are more programming languages that look and feel like Fortran than the other two. Dec 24, 2004

Nice work. Godspeed to you on its completion. As a newbie, watching the wikipedians' work, this is a definite improvement on the Google / newsgroup mechanism.

As a comment, I don't think Python is a 'procedural language with an object system grafted on top'. Granted very early versions of Python did not have a class construct (but releases even in 91, less than a year after initial release, did), but they did have built-in types which were created in C, such as lists and dictionaries. Method calls and the like for these already existed. You can argue whether Python's object system is clean, etc, but "grafted on top of a procedural language" does not seem accurate. Martijn faassen 00:15, 22 May 2004 (UTC)

There were several full implementations of Algol 60 in Europe, and Burroughs Extended Algol was essentially the full language.

Jim H. 01:59, Jun 24, 2004 (UTC)

IMHO this article is great. as an upcoming language, C# is missing. Does that have any particular reason or is it just missing timeß I am not talking about a missing article, only about the link. I understand if you don't like that language, but may become an important one.

mac_c 13:40, 14 Jul 2004 (UTC)

Is the section on syntax perhaps a little too technical? It might be better to remove the examples of BNF and so forth, as those are discussed adequately on the relevant page, and retaining them here only serves to make the topic look more complicated than it really is. Remember that the average computer programmer never looks at a formal grammar of any language -- and this page is surely aimed at people who are not necessarily even programmers!

I agree. Fredrik | talk 17:51, 6 Sep 2004 (UTC)

It might also make sense to move the discussion of static/dynamic and strong/weak typing down to the "taxonomies" section.

I think the taxonomies section should be moved to a separate article, as should the in-depth coverage of semantics. Fredrik | talk 17:51, 6 Sep 2004 (UTC)

A programming language is a systematic method to describe computations. Perhaps you meant a program written in a programming language is a .. But even that is not general enough.

Important is that it is all about computations.

We put some data (or none) in and get some data (or none) out after a finite time, using finite memory. This mapping is called a computable function. How do you tell your universal computing device (which can calculate any computable function) what mapping to compute? You must provide it with some key information that selects the candidate. And that key information is your program.

Therefore the easiest programming language is the set ${\displaystyle \mathbb {N} }$, thus ${\displaystyle i=233845234543}$ might be that program where the corresponding computable function is ${\displaystyle \varphi _{i}(x)=x+3}$.

Please note that this definition asks nearly nothing from the program, a program thus must not contain imperative commands or declarative stuff. It must just act as a key to the realizable set of functions of the universal computation device.

Marc van Woerkom, 3rd Sep 04

A programming language is a systematic method to describe computations.

Perhaps you meant a program written in a programming language is a .. But even that is not general enough.

A program would be a description of a computation, whereas a language is the form such a description may have. The definition used here, while a bit fuzzy, is at least better than the one at programming language. In any case, I think it's a bad idea to use the most formal definition possible in the first sentence. Maybe later on in the article. Fredrik | talk 17:51, 6 Sep 2004 (UTC)
I think what is meant by the definition is that the use of a language describes a computation, as opposed to the specification of a language. Of couse, the use of a language is, more simply, a program (or perhaps part of a program). I agree with Fredrik, though, that one shouldn't use too formal a definition in the intro. Besides, I think most people will assume that use and not specification is meant. Ddawson 15:57, 21 August 2005 (UTC)

The definition used in your paragraph on foundational languages matches the definition of specification languages in that article and I updated accordingly. --L33tminion 20:18, Oct 24, 2004 (UTC)

I'm not sure this is right; it may point to a problem in the description of foundational languages rather than a similarity to specification languages. The thing is that foundational languages are executable (in the same sense as any high-level language is), although one can argue that that is not their main function. It might be more accurate to say that foundational languages are intended to be objects of formal study rather than tools for constructing useful software. Specification languages, if I am not mistaken, are intended to be used in the construction of real software, but differ from the usual sort of programming language in that (among other things) specifications are not always executable as programs are. Cjoev 17:51, 23 Mar 2005 (UTC)

As a user, implementor and theorist of functional languages, I have two problems with the sentence: "Functional languages often require variables to name run-time computed values directly instead of naming memory locations where values may be stored." First, it sounds like an unfavorable comparison with C-like languages that "allow" variables to name locations; it could just as well be said that in C, variables (by which I mean to include global variables, function arguments and local variables) *must* name locations, whereas in ML the value named by a variable might be a location (of type t ref) but is usually something else. Second, languages in the Lisp family are often considered functional, but variables refer to locations in these languages (or else things like setq would be meaningless).

Cjoev 19:50, 22 Mar 2005 (UTC)

I belive this applys to the rewrite as well: Talk:Programming_language#TIOBE_Programming_Community_Index

Hi there. Just a couple of nitpicks concerning the article (which looks pretty good, BTW):

• You speak of electronic computers only. Aren't programming languages, in theory, equally applicable to some non-electronic computers? Perhaps 'digital computers' would be more accurate? (I'm pretty sure analog computers don't use languages, at least in the normal sense.)
• You might mention microcode. Although it's falling rapidly out of use, it's not entirely dead (the Pentium II on my system has it, for instance).

I might add other things when I think of them. Ddawson 15:57, 21 August 2005 (UTC)

## Things that aren't programming languages

As I've seen too many mistakes in this page related to non-programming languages being cited as programming languages, I've started this topic to pin them out.

So there it goes, "things that aren't programming languages and are cited in the article, for five hundred :P"

• ASP, ASP.NET, JSP:

Active Server Pages (ASP) is Microsoft's server-side technology for dynamically-generated web pages that is marketed as an add-on to Internet Information Services (IIS).

• CORBA:

(CORBA), is a standard for software componentry.

I think that definition (1st paragraph) don’t describe the programming language concept concisely. The 1st paragraph is very important and the definition would be complete and concise. I hope that following lines will help you:

Programming language

IS: • a method to describe computations • a method for program specification • a communication system and medium between a. programmer and machine b. (optional) software developers

HAS: • a vocabulary • syntactic rules • semantic rules • data type(s) • applicability domain(s) • a design philosophy • roles • abstraction levels • performances • implications in source programs • ancestor(s) • descendent(s)

ROLES: • data communication • to define data transformations • (optional) to define data • (optional) to define actions that will be effectuated in certain context

PERMITS: • development of programs

PERFORMANCES: • readability • understandability • conciseness • expressivity

IMPLICATIONS IN SOURCE PROGRAMS: • size of source programs • compiling/interpreting time

Flaviu

## Turing completeness

There are no languages that are not Turing-complete in use today: even Microsoft Word macros satisfy this minimal criteria.

Not sure about this one. While, AFAIK, SQL is Turing-complete (TC), a non-complete version would still be useful - a version without iteration or recursion, or even without arithmetic. I'm sure there are batch/scripting languages that are not TC. HQ9+, while not useful, is a programming language, and is not TC. --대조 | Talk 20:06, 30 November 2005 (UTC)

does this discussion page have a discussion page? Ideogram 03:27, 1 June 2006 (UTC)

## review

I found this article generally informative and well written. I have a few criticisms:

• Some of the early sections seem POV.
• There is too much emphasis on formal languages.
• The article is too long and needs to be broken up into a family of articles.

I intend to spend a lot of time on programming language and I will be reading this article very closely to see what I can merge in.

Thanks. Ideogram 03:30, 1 June 2006 (UTC)

## garbage collection, complex data structures, expressed and denoted values

I don't undersand this sentence:

Languages that use garbage collection are free to allow arbitrarily complex data structures as both expressed and denoted values.

Can you please explain? Ideogram 03:33, 1 June 2006 (UTC)