hmm, du bist allein auf einer (sehr sehr großen ^^) insel und sollst ein atomkraftwerk bauen. geht das? sicher ^^ aber einfach is was anderes
- du musst irgendwie erstmal was zum feuer machen suchen
- du brauchst nahrung
- du musst irgendwie metallhaltige erze ausbuddeln
- feuer und erze ergeben dann eventuell mal irgendwann eisen
- damit kannst du dann bessere werkzeuge bauen (assembler? ^^)
- mit denen kannst du besser jagen und an weiteres erz kommen
- deine erzverhüttung kannst du damit aufpolieren
- du gewinnst schneller und besser erze
- du suchst auch noch nach sand und krams für beton
- du bastelst dir nen bleianzug (vorsorglich
) und baust irgendwann uran ab usw usf...
also sowas wie assembler und hochsprachen wie c usw sind auch nix andres als ne lebensvereinfachung. prinzipiell ist es möglich im maschinencode zu schreiben. wäre das nicht möglich, würde kein computer funktionieren ^^ die höheren programmiersprachen lassen einen die elemente der tieferen nur einfach besser verwenden. in logikgattern und registern und dem ganzen kram werden die 1 und 0 gespeichert, verarbeitet und hin und hergeschoben. einfachste programme lassen sich locker noch im maschinencode händisch bauen. additionen oder so würd ich mal als bsp. anführen, aber da gibts sicher leute, die das besser wissen >< ich beschreib das auch nur aus ner sehr diffusen sichtweise ^^ dann kommt assambler und nutzt solche "komplexen" maschinencode teile und fügt vllt verschiedene davon zu einer einzigen funktion zusammen. in assambler kann man nun mit einem befehl ganze heerscharen an maschinencode befehlen auslösen. und c usw? die nutzen wiederrum assambler als grundlage (also ich glaubs ^^ 100% sicher bin ich mir ned grad *hust*) und basteln aus den assambler befehlen wieder lustige easy-to-use funktionen. die vorteile jedes abstraktionsschrittes ist dann eben, dass sich die lesbarkeit erhöht.
hier sieht mans schön:
Maschinensprache
maschinencode in hex: C7 45 FC 02 -> bitte was? ^^
assambler: mov DWORD PTR [rbp-4], 2 -> könnte man schon erahnen. irgendeine speicherbelegung. dieser pointer PTR wird irgendwie mit dem DWORD wert 2 belegt oder so.
und dann in c: int a = 2; -> ahhh ^^ einer variablen wird der wert 2 zugeordnet.
macht alles das selbe, aber wieso sollte man im urschlamm wühlen, wenn sich generationen schlauer leute die köpfe zerbrochen haben, wie man es einfacher hinbekommt?
oder zündest du dir die zigarette auch mit 2 feuersteinen an, die du aneinander schlägst? ^^