Software Programming Language: Difference between revisions

From GM-RKB
Jump to navigation Jump to search
(Redirected page to Programming Language)
 
(Removed redirect to Programming Language)
Tag: Removed redirect
 
Line 1: Line 1:
#REDIRECT [[Programming Language]]
A [[Software Programming Language]] is a [[machine processable]] [[formal language]] that can be used to create a [[software program]].
* <B>AKA:</B> [[Programming Language|Computer Programming Language]].
* <B>Context:</B>
** It can typically have a [[Programming Language Syntax]] that defines [[valid statement]]s and [[expression structure]]s.
** It can typically include [[Semantic Rule]]s that determine the [[meaning]] and [[behavior]] of [[program construct]]s.
** It can typically support [[Data Structure]] definition and [[manipulation]] through [[variable]]s and [[operator]]s.
** It can typically provide [[Control Flow Mechanism]]s such as [[sequence]], [[selection]], and [[iteration]].
** It can typically enable [[Abstraction]] through [[function]]s, [[procedure]]s, or [[module]]s.
** It can typically specify [[Input/Output Operation]]s for interaction with [[external environment]]s.
** ...
** It can often include a [[Standard Library]] of [[predefined function]]s and [[utility routine]]s.
** It can often support [[Error Handling]] through [[exception mechanism]]s or [[error code]]s.
** It can often implement [[Memory Management]] through [[manual allocation]], [[garbage collection]], or [[reference counting]].
** It can often facilitate [[Code Organization]] through [[namespace]]s, [[package]]s, or [[module system]]s.
** It can often provide [[Debugging Capability]] through [[diagnostic tool]]s and [[tracing mechanism]]s.
** ...
** 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 Programming Language|Untyped Language]] to being a [[Typed Programming Language|Typed Language]] ([[Strongly Typed Programming Language|strongly typed]] to [[Weakly Typed Programming Language|weakly typed]]); ([[Statically Typed Programming Language|statically typed]] to [[Dynamically Typed Programming Language|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 Type]]s.
** It can have [[Syntax Highlighting]] to improve [[code readability]] and [[visual distinction]].
** It can have [[Documentation System]]s for [[code annotation]] and [[api description]].
** It can have [[Testing Framework]]s 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]].
** ...
* <B>Examples:</B>
** [[System Programming Language]]s, such as:
*** [[Assembly Programming Language]]s for [[hardware-specific instruction]].
*** [[C Language]] for [[operating system development]].
*** [[Rust Programming Language]] for [[memory-safe system programming]].
** [[Application Programming Language]]s, such as:
*** [[Imperative Programming Language]]s, such as:
**** [[Fortran Programming Language|Fortran]] for [[scientific computation]].
**** [[Algol-like Programming Language|Algol]] for [[algorithm expression]].
**** [[C Language|C]] for [[performance-critical application]].
**** [[Perl Programming Language|Perl]] for [[text processing]].
*** [[Object-Oriented Programming Language]]s, such as:
**** [[C++]] for [[resource-constrained system]].
**** [[Java Programming Language|Java]] for [[cross-platform application]].
**** [[C# Programming Language|C#]] for [[Windows platform development]].
**** [[Python Programming Language]] for [[general-purpose scripting]].
** [[Specialized Programming Language]]s, such as:
*** [[Declarative Programming Language]]s, such as:
**** [[SQL]] for [[database query expression]].
**** [[Prolog Programming Language]] for [[logic programming]].
*** [[Matrix Programming Language]]s, such as:
**** [[MATLAB Language]] for [[numerical computation]].
**** [[R Programming Language]] for [[statistical computation]].
*** [[Functional Programming Language]]s, such as:
**** [[Haskell Programming Language|Haskell]] for [[pure functional programming]].
**** [[LISP Programming Language]] for [[symbolic computation]].
**** [[Clojure Programming Language]] for [[functional JVM programming]].
** [[Experimental Programming Language]]s, such as:
*** [[English as a Programming Language]] for [[natural language programming]].
** ...
* <B>Counter-Examples:</B>
** [[Natural Language]]s, which lack [[formal syntax]] and [[unambiguous semantic]]s.
** [[Mathematical Language]]s, which express [[abstract concept]]s rather than [[computational instruction]]s.
** [[Markup Language]]s, such as [[HTML]] or [[XML]], which describe [[document structure]] rather than [[computational process]]s.
** [[Configuration Language]]s, which specify [[program setting]]s rather than [[executable algorithm]]s.
** [[Query Language]]s that are not [[Turing complete]], which can only express [[data retrieval]] rather than [[general computation]].
* <B>See:</B> [[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/
** QUOTE: 1-[[JavaScript]], 2-[[Java]], 3-[[PHP]], 4-[[Python]], 5-[[C#]], 5-[[C++]], 5-[[Ruby]], 8-[[CSS]], 9-[[C]], 10-[[Objective-C]], 11-[[Perl]], 11-[[Shell]], 13-[[R]], 14-[[Scala]], 15-[[Haskell]], 16-[[Matlab]], 17-[[Go]], 17-[[Visual Basic]], 19-[[Clojure]], 19-[[Groovy]],
 
=== 2013 ===
* (Wikipedia, 2013) ⇒ http://en.wikipedia.org/wiki/Programming_language#Syntax
** A programming language's surface form is known as its [[syntax (programming languages)|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 [[visual programming language|graphical]] in nature, using visual relationships between symbols to specify a program.        <P>     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 semantics of programming languages|formal]] or hard-coded in a [[Reference implementation (computing)|reference implementation]]). Since most languages are textual, [[this article]] discusses textual syntax.        <P>     Programming language syntax is usually defined using a combination of [[regular expression]]s (for [[lexical analysis|lexical]] structure) and [[Backus–Naur Form]] (for [[context-free grammar|grammatical]] structure). Below is a simple grammar, based on [[Lisp (programming language)|Lisp]]:
<pre>
expression ::= atom | list
atom ::= number | symbol
number ::= [+-]?['0'-'9']+
symbol ::= ['A'-'Z'<nowiki>'</nowiki>a'-'z'].*
list ::= '(' expression* ')'
</pre>
*
** This grammar specifies the following:
*** an ''expression</i> 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: '<code>12345</code>', '<code>()</code>', '<code>(a b c232 (1))</code>'
<references/>
 
----
 
__NOTOC__
[[Category:Concept]]
[[Category:Computing]]
[[Category:Software Development]]
[[Category:Quality Silver]]

Latest revision as of 04:41, 2 March 2025

A Software Programming Language is a machine processable formal language that can be used to create a software program.



References

2015

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:

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))'