Machine language
It is the language that the CPU understands, composed of a binary sequence, whose rules are defined by each architecture.
The recommended is to generate through a compiler of another language of higher level,
but you can open a hex editor, and you can write everything using characters 0123456789abcdef
, which is not very practical.
Then you will need a way to load the code in memory, unless you also write the bytes of the executable and already save as .exe
.
Maintainability is very low, and it is impossible to comment on the code.
Turing machines - esoteric languages
Other alternatives would be implementations of turing machines basic. There are several languages:
Brainfuck: this is to chip any human skull... is a minimalist language, Turing-Complete and therefore is able to do everything that any other language is able to do.
Wikipedia example - Program "Hello World!":
++++++++++[>++++++++>+++++++++++
>---------->+++>++++++++>+++++++
+++++>+++++++++++>++++++++++>+++
++++++++>+++<<<<<<<<<<-]>-.>--.>
++++.>++.>---.>---.>.>.>+.>+++.,
Online interpreter (go to google and type online brainfuck interpreter
):
Piet: the language is programmed through a Bitmap... so there are many editors.
Example - test if a number is prime:
Run the example above online
Other esoteric languages: The languages above are the ones I found most interesting but there are others. This Wikipedia link has a listing, which includes the previously presented.
Hardware description language (HDH or HDL in English)
Hardware description language are used to model the functioning of a hardware, assuming it is done using logic ports, rather than instructions interpreted by a CPU.
These languages can be run and debugged like any other, through a simulation of the logic gates, of the charge streams in the semiconductors, which in the end change Ddps and these are finally interpreted as signals 1 and 0, on/off, etc..
There are in this group of languages, those of lower level and higher level.
Example from wikipedia: VHDL
cmp : process
begin
if A = B then
C ⇐ 0;
else
C ⇐ 1;
end if;
end process cmp;
Machine language is still below Assembly, and in any case "Assembly" is not really a language - since each platform has its own assembly code. FOTRAN is higher than Assembly, but lower than C for example (and this lower than many others). And if you ask me, I’d say there’s no such thing as too much language high level that Lisp... : P (Lisp is practically "executable mathematics")
– mgibsonbr
@mgibsonbr did not answer the question ;)
– Jorge B.
I didn’t understand the -1
– Jorge B.
Set low level language. Your interpretation may be different from mine.
– Maniero
@bigown equivalent to Assembly.
– Jorge B.
@Jorgeb. the author, not you :)
– Maniero
I know, but I can tell by the question @bigown :P
– Jorge B.
I don’t think so. I think I can answer but the question is unclear. P/ Sopt standards it may look great, but p/ patterns of what has always been used in the SE lack relevant information to respond appropriately. I am not complaining about the question, much less who answered it, I could have done the same, but it could be much more informative to avoid ambiguity. If he gives a definition that matches mine, I have a good answer. If he confirms what you understand, then Miguel’s is already good.
– Maniero
@Jorgeb. If I had an answer, I would reply, not comment... : P I just wanted to illustrate that dividing languages between "low level" and "high level" is complicated, there is a whole spectrum that goes from "100% architecture compliant underneath" to "100% abstract". One can draw a line (as it was done in the old days) and say that "if it is compiled/interpreted, it is high-level" but this only reinforces the myth that every high-level language is equivalent.
– mgibsonbr
Punch card.
– ptkato