|
In this article:
- What is Programming language theory
- History of Programming language theory
- Fields of study in programming language theory
What is Programming language theory
Programming language theory or PLT is a field of study in computer science which involves the design, implementation, analysis, characterization and classification of programming languages and the features of programming languages. Being a multi-disciplinary field, it is dependent on the fields of mathematics, software engineering as well as linguistics and cognitive science. It is sometimes represented by the lowercase of Greek letter lambda.
History of Programming language theory
There have been certain major developments in various fields that have had a direct effect on programming language theory. These are as follows:
- The development of Chomsky hierarchy by Noam Chomsky in the 1950s under linguistics was a discovery that had a big impact on the field of programming language theory.
- Simula, the first object-oriented language, developed by Ole-Johan Dahl and Kristen Nygaard in the 1960s introduced the important concept of co-routines.
- Smalltalk, the object oriented programming language developed at Xerox PARC under the leadership of Alan Kay was known for it innovative nature and development environment.
- The development of the process calculi was another important factor that affected the field of computer science especially programming language theory.
- Monads were first used as a method to structure programs that were written in functional programming languages by Philip Wadler in the 1990s which was a significant development in this field.
Fields of study under Programming language theory
Programming language theory engulfs several fields or areas of study. These may be a part of the theory itself or may have an important effect on the theory. These are explained below:
- Compiler theory
Compiler theory is a theory that deals with writing compilers or translators for programming languages. Compilers are software programs that perform the important function of converting the program written in one language to a program of another programming language. A compiler performs certain key functions. The first of them is syntax analysis where the compiler determines if the program code is written correctly in accordance with the syntax of the language it is in. This involves scanning and parsing. The next function is of semantic analysis where the compiler tries to determine what the program is supposed to do or achieve. The compiler also performs optimization of the program which improves the performance of the program (usually in the terms of speed of execution). Finally, the compiler generates the code which results in an output of the program in the desired language (example, machine code).
- Formal Semantics
The field of formal semantics aims at laying down a standard or specification based on which a computer program would behave. It also lays down standards for programming languages and their behavior.
- Program Transformation
The process of converting a particular program from one form (that is, language) to another one is called program transformation.
- Program Analysis
Program analysis tries to examine a computer program for problems, if any, and also determines the key characteristics of the computer program.
- Runtime systems
The development of runtime environments for a programming language is called a runtime system. It also involves the development of the components required for the functioning of such environments such as virtual machines, garbage collection.
- Comparative programming language analysis
Comparative programming language analysis involves the classification of programming languages as belonging to a certain type based on the characteristics they bear. Programming languages maybe divided under broad categories which are called programming paradigms (such as modular programming, procedural programming etc.)
- Metaprogramming
The process through which higher-order programs are generated which help produce other programs that are usually in a different language when they are executed is called metaprogramming.
- Domain-specific languages
Domain-specific languages are developed with a purpose to solve certain specific problems in a more efficient and fast manner.
|