DEV Community

Discussion on: How did linguistics influence programming?

Collapse
 
yucer profile image
yucer • Edited

Interesting discussion, but it seems that somehow implies no relation between natural languages (refered in the actfl link as world language) and computer languages.

Hence it seems to suggest no relation between linguistics and computer languages. Isn’t ?

Let me point out that even when natural languages and computer languages have different goals, it doesn't mean that knowledge mankind has achieved studying the former (linguistics) had not been useful for the theory behind the later.

I think the ACTFL made that statement in an attempt to let clear the mission of the organization and the benefits the students will achieve with their courses. The statement seem not to be directed to linguistics or computer scientists just to regular people that want to benefits from their training and might be confused.

Just note that they are not comparing the nature of the languages, they are comparing computer coding course and world language course. Given that the skills expected from both courses is different, of course that the courses are not equivalent.

Nevertheless, even when computer languages are strongly scoped by the context (computer hardware, problem domain, purpose) the theory behind has a lot of stuff in common.

As a matter of fact, computer languages have an old classification. They are told to be High level languages when they resemble more the language of the humans and Low level languages when they are near to the machine code.

We might say then that Scratch, or other easy visual languages are high levels (for the limited scope they are build to) if humans can use them almost without coding.

If you like to go deeper into this without going into the theory of automata, compilers, etc. (more math here) then I can advice a check from the perspective of linguistics.

Take this book: Knowledge Representation and the Semantics of Natural Language and check that even when some natural languages have more than 10000 vocabulary words and grammatical structures (as pointed by actfl in your link) there are just a few tens of semantical structures that you can use to express something. They even teach you how to build a graph with them to analyze documents at the semantic level.

Once you have learn all those semantics structures, then check the programming paradigms, of the computer languages that you use.

I think you might be surprised to identify that many computer programming concepts are build to implements those semantic structures. For example OOP takes the concepts of class, instance and the relations between them (instantiation, inheritance, ...).

Nevertheless, there are semantics structures related to TIME that might better represented in other programming paradigms like Event driven programming.

This correspondence did not happen by accident. It is precisely because all what you need to tell to a computer ..., you need to understand it first. And you need a symbol with meaning in your mind. You can speak many languages (and also a computer), but the meaning is one and obeys to certain rules given by how your mind works (ref: Gnosiology).

This topic is amazing to some degree that humans have debated by millennial whether the meaning exist overall and we discover it, or we create the meaning to model the reality. (ref: Realism)

It is not a coincidence that computer languages has to do with natural languages, they share a the common theory because they both come from human minds, and the same semantic structures were used in the process

Of course that is not the case of low level languages, but humans try to do the languages at a higher level, such as they can understand it.

It left to see what might happen if machines achieve conscience in the future. Would they have their own semantic structures ? Would they create their own programming languages and paradigms?

Maybe then they would say: -Human linguistics? Not related to our programming languages.

But I guess NO. Because it is told that the way the humans reason, acquire and classify knowledge is given by the way the complexity is organized in the universe. (ref: Systems_theory).

That way complexity is organized in nature is good explained in the first chapters of Object-Oriented Analysis and Design with Applications. I guess that If machines want to generate useful code to control this universe and survive, their minds need to handle the complexity with similar structures.