articles/programming_language.md: update article
This commit is contained in:
parent
dc2a4f0155
commit
bd0e4956b8
1 changed files with 9 additions and 4 deletions
|
@ -3,19 +3,24 @@ A programming language is a computer language in which programs can be written,
|
||||||
Different programming languages offers distinct amount of abstraction over the machine (low-level and high-level),
|
Different programming languages offers distinct amount of abstraction over the machine (low-level and high-level),
|
||||||
being the so called scripting languages the ones with the higher level of abstraction, for example.
|
being the so called scripting languages the ones with the higher level of abstraction, for example.
|
||||||
|
|
||||||
In some ways, assembly can be considered a (low-level) programming language, since it abstracts the numerical opcodes of the machine with mnemonics
|
The distinction between compiled and interpreted languages can be a bit blurry sometimes, since most "serious" "interpreted"
|
||||||
|
programming languages actually *compile* to [bytecode](bytecode.md) (instead of machine code) something that can be considered
|
||||||
|
as compilation. So to summarise, "compiled language" refers to a language that compiles to machine code while an "interpreted language"
|
||||||
|
compiles to bytecode or is executed by a tree-walk interpreter.
|
||||||
|
|
||||||
|
In some ways, assembly can be considered to be a low-level programming language, since it abstracts the numerical opcodes of the machine with mnemonics
|
||||||
(such as `mov`, `call`, `mul`, etc.) and most offer macro capabilities.
|
(such as `mov`, `call`, `mul`, etc.) and most offer macro capabilities.
|
||||||
|
|
||||||
Some bloated programming languages such as Python or JavaScript may be acceptable for simple throwaway scripts or for learning programming,
|
Some bloated programming languages such as Python or JavaScript may be acceptable for simple throwaway scripts or for learning programming,
|
||||||
but no serious software should be written on it.
|
but no serious software should be written on them.
|
||||||
|
|
||||||
## List of acceptable and non-acceptable (harmful) languages
|
## List of acceptable and non-acceptable (harmful) languages
|
||||||
- [Assembly](assembly.md): yes, but non portable.
|
- [Assembly](assembly.md): yes, but non portable.
|
||||||
- [C](c.md): yes, the first and natural choice for writing programs. The Unix language.
|
- [C](c.md): yes, the first and natural choice for writing programs. The Unix language.
|
||||||
- [Lua](lua.md): yes, good for embedding and quick scripts.
|
- [Lua](lua.md): yes, good for embedding and quick scripts.
|
||||||
- [Lisp](lisp.md): yes, flexible and relatively fast, prefer Scheme over the more bloated [Common Lisp](common_lisp.md) (still better than C++ however).
|
- [Lisp](lisp.md): yes, flexible and relatively fast, prefer Scheme over the more bloated [Common Lisp](common_lisp.md) (still better than C++ however).
|
||||||
- [Forth](forth.md): yes, niche, but it is a nice exercise on minimalism.
|
- [Forth](forth.md): yes, niche, but it is a nice exercise on [minimalism](minimalism.md).
|
||||||
- [Pascal](pascal.md) (no OOP): yes, old school and quite verbose, but small and fast compared to, say C++ or Rust; comparable to C in terms
|
- [Pascal](pascal.md) (no [OOP](oop.md)): yes, old school and quite verbose, but small and fast compared to, say C++ or Rust; comparable to C in terms
|
||||||
of features.
|
of features.
|
||||||
- [AWK](awk.md): yes, the standard [Unix](unix.md) [DSL](dsl.md) for text processing.
|
- [AWK](awk.md): yes, the standard [Unix](unix.md) [DSL](dsl.md) for text processing.
|
||||||
- ([POSIX](posix.md)) [Shell Script](shell_script.md): yes, has its quirks.
|
- ([POSIX](posix.md)) [Shell Script](shell_script.md): yes, has its quirks.
|
||||||
|
|
Loading…
Add table
Reference in a new issue