articles/programming_language.md: update article

This commit is contained in:
tocariimaa 2025-03-04 18:14:09 -03:00
parent dc2a4f0155
commit bd0e4956b8

View file

@ -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.