Software Programming Language
Jump to navigation
Jump to search
A Software Programming Language is a machine processable formal language that can be used to create a software program.
- AKA: Computer Programming Language.
- Context:
- It can typically have a Programming Language Syntax that defines valid statements and expression structures.
- It can typically include Semantic Rules that determine the meaning and behavior of program constructs.
- It can typically support Data Structure definition and manipulation through variables and operators.
- It can typically provide Control Flow Mechanisms such as sequence, selection, and iteration.
- It can typically enable Abstraction through functions, procedures, or modules.
- It can typically specify Input/Output Operations for interaction with external environments.
- ...
- It can often include a Standard Library of predefined functions and utility routines.
- It can often support Error Handling through exception mechanisms or error codes.
- It can often implement Memory Management through manual allocation, garbage collection, or reference counting.
- It can often facilitate Code Organization through namespaces, packages, or module systems.
- It can often provide Debugging Capability through diagnostic tools and tracing mechanisms.
- ...
- It can range from being a Low-level Programming Language to being a High-level Programming Language.
- It can range from being a General-Purpose Programming Language to being a Domain-Specific Programming Language.
- It can range from being a Dynamic Programming Language/Interpreted Programming Language to being a Static Programming Language/Compiled Programming Language.
- It can range, based on its Data Type System, from being an Untyped Language to being a Typed Language (strongly typed to weakly typed); (statically typed to dynamically typed).
- It can range from being a Procedural Programming Language to being a Declarative Programming Language, depending on its execution model.
- It can range from being a Simple Programming Language to being a Complex Programming Language, depending on its feature set and expressiveness.
- ...
- It can have a set of Primitive Data Types.
- It can have Syntax Highlighting to improve code readability and visual distinction.
- It can have Documentation Systems for code annotation and api description.
- It can have Testing Frameworks to ensure code correctness and functional compliance.
- It can have Performance Optimization techniques for execution efficiency.
- ...
- It can reference a Software Programming Paradigm, such as imperative programming, functional programming, or logic programming.
- It can reference a Programming Language Paradigm, such as an Object-Oriented Programming Language or a Functional Programming Language.
- It can facilitate the design of Software.
- ...
- Examples:
- System Programming Languages, such as:
- Application Programming Languages, such as:
- Imperative Programming Languages, such as:
- Fortran for scientific computation.
- Algol for algorithm expression.
- C for performance-critical application.
- Perl for text processing.
- Object-Oriented Programming Languages, such as:
- Imperative Programming Languages, such as:
- Specialized Programming Languages, such as:
- Declarative Programming Languages, such as:
- Matrix Programming Languages, such as:
- Functional Programming Languages, such as:
- Experimental Programming Languages, such as:
- ...
- Counter-Examples:
- Natural Languages, which lack formal syntax and unambiguous semantics.
- Mathematical Languages, which express abstract concepts rather than computational instructions.
- Markup Languages, such as HTML or XML, which describe document structure rather than computational processs.
- Configuration Languages, which specify program settings rather than executable algorithms.
- Query Languages that are not Turing complete, which can only express data retrieval rather than general computation.
- See: Procedural Semantic Theory, Abstract Machine, Compiler, Interpreter, Algorithm, Syntax, Semantics, Source Code, Software Development, Computer Program.
References
2015
- The RedMonk Programming Language Rankings: January 2015 http://redmonk.com/sogrady/2015/01/14/language-rankings-1-15/
2013
- (Wikipedia, 2013) ⇒ http://en.wikipedia.org/wiki/Programming_language#Syntax
- A programming language's surface form is known as its syntax. Most programming languages are purely textual; they use sequences of text including words, numbers, and punctuation, much like written natural languages. On the other hand, there are some programming languages which are more graphical in nature, using visual relationships between symbols to specify a program.
The syntax of a language describes the possible combinations of symbols that form a syntactically correct program. The meaning given to a combination of symbols is handled by semantics (either formal or hard-coded in a reference implementation). Since most languages are textual, this article discusses textual syntax.
Programming language syntax is usually defined using a combination of regular expressions (for lexical structure) and Backus–Naur Form (for grammatical structure). Below is a simple grammar, based on Lisp:
- A programming language's surface form is known as its syntax. Most programming languages are purely textual; they use sequences of text including words, numbers, and punctuation, much like written natural languages. On the other hand, there are some programming languages which are more graphical in nature, using visual relationships between symbols to specify a program.
expression ::= atom | list atom ::= number | symbol number ::= [+-]?['0'-'9']+ symbol ::= ['A'-'Z''a'-'z'].* list ::= '(' expression* ')'
-
- This grammar specifies the following:
- an expression is either an atom or a list ;
- an atom is either a number or a symbol ;
- a number is an unbroken sequence of one or more decimal digits, optionally preceded by a plus or minus sign;
- a symbol is a letter followed by zero or more of any characters (excluding whitespace); and
- a list is a matched pair of parentheses, with zero or more expressions inside it.
- The following are examples of well-formed token sequences in this grammar: '
12345
', '()
', '(a b c232 (1))
'
- This grammar specifies the following: