From bd0e4956b8b6916d1c7d403a1596ca83ea5ff7b6 Mon Sep 17 00:00:00 2001 From: tocariimaa Date: Tue, 4 Mar 2025 18:14:09 -0300 Subject: [PATCH] articles/programming_language.md: update article --- articles/programming_language.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/articles/programming_language.md b/articles/programming_language.md index d91df49..e6b6f9a 100644 --- a/articles/programming_language.md +++ b/articles/programming_language.md @@ -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), 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. 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 - [Assembly](assembly.md): yes, but non portable. - [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. - [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. -- [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 +- [Forth](forth.md): yes, niche, but it is a nice exercise on [minimalism](minimalism.md). +- [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. - [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.