Often when people ask me what programming languages I know/use, I often answer “php, java, javascript, and basic SQL”. Even if I can html and css I mostly don’t count those since they don’t have the logic php, java, and javascript have, while SQL being on the border since it have a few functions/methods. I just wonder, how many leave out languages like that?
Excuse me if I sound rude, but what are you talking about? and how did you come to that conclusion from my thread? I was simply asking what people consider a programming language to be, and gave the example that I count java, php, javascript, and SQL as a programming language, while I don’t count css and html.
He gave a very good answer to your initial question of what one might consider a “programming language”.
But as it seems you probably may have wanted a definition by “enumeration”.
Say, “Prolog is a programming language”, “XSLT is a programming language”, “XML by itself is not a programming language, but a markup language for data”. “XQuery is a programming language”, “suchandsuch again ist not a programming language”, etc pp.
But @princec gave one possible definition by the “properties” of such languages, being that those are “turing complete.”
And that is, if they are capable of solving the same kind of problems (i.e. computing the same kind of functions) that the hypothetical “Turing Machine,” invented by Alan Turing (the great-grandfather of computing , is capable of.
Alan Turing invented that hypothetical machine in order to give one possible answer to the question of what an algorithm and what a computable function is, namely those that can be expressed and computed by that particular turing machine.
So if any programming language can be proven to have the same expressiveness as that hypothetical turing machine, it is said to be “Turing Complete.”
Btw.: I recommend visiting a Computer Science course at your nearby university.
This is another askyahoo situation isn’t it? where no one have an opinion or thought on their own, instead they just go to sources to give the absolute definition.
I am currently studying defining languages and such in Formal Languages and Automata class, which is done in Software Engineering and Computer Science at my uni.
EDIT: Touring machines are apart of Formal Languages and Automata.
To me a “language” can be anything which conveys information - think “body language”, or when people talk about traders understanding “the language of the markets”. Yesterday on the radio a builder was saying how cracks are a building’s language for telling you they have structural problems
So here it comes down to what is “programming”. Defining/marking up data is part of the activity of programming so XML, CSS etc. yes IMO. Specifying abstracted queries/arguments for special-purpose processing engines to carry out some activity even more so, so SQL, XQuery etc. yes IMO. And obviously anything more procedural like Word macros and shader scripts definitely, even if the “language” in question has no explicit name.
In general if you’re concerned about getting the “right” answer in some context, either give the caveats explaining your interpretation, or better (depending on how interactive the situation) ask for more precision in the question
So you ask questions that could be answered by searching it up. But the reason you are asking is not that you are too lazy, but to gather other people opinions. Yet you are rude to everybody answering on your thread… can’t see how that works out.
What does it have to compile to to qualify as being ‘compiled?’
What if you can have [hardware] that runs X language without any intermediate compilation? (see: LISP machines, etc. there’s even a Java machine iirc)
There’s also things for which the term ‘language’ seems dubious yet are Turing Complete and obviously programmable, etc. such as various calculi (e.g. lambda), cellular automata (e.g. Rule 110)…
As I am wont to do, I defer to wikipedia:
[quote]A programming language is a formal constructed language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs to control the behavior of a machine or to express algorithms.
[/quote]
I specifically like the distinction of ‘constructed language’:
[quote]A planned or constructed language (sometimes called a conlang) is a language whose phonology, grammar, and vocabulary have been consciously devised for human or human-like communication, instead of having developed naturally. It is also referred to as an artificial or invented language.
[/quote]
So this takes care of mathematical phenomena such as cellular automata and starts to focus on the ‘language’ in ‘programming language.’
This is kind of like asking what everyone’s stance on global warming is; it doesn’t really matter what your opinion is since there are pretty much facts about it. The definition of a programming language is a Turing complete language. Languages/formats/whatever that aren’t Turing complete cannot be used to implement all algorithms, so we don’t count them as programming languages.
So… you can’t make a game in them since games aren’t provably terminating. Sounds like a shitty paradigm. It’s like saying “What about Java without loops that cannot be provably terminating?”. You can’t take a programming language, chop off its limbs one after another and then still call it a programming language.