definition: mächtigkeit
-
ich hatte gerade mit meinem vater eine recht interessante diskussion über die 'mächtigkeit' von programmiersprachen.
er vertritt die meinung, dass die sprache umso mächtiger ist, je mehr einzelne befehle zusammengefasst werden, dass hochsprachen also mächtiger sind als assembler.
ich konnte ihm da nur widersprechen, u.a. mit der argumentation, dass man mit assembler mehr machen kann, als mit vb, mit c++ mehr als vb, sie also MÄCHTIGER sind.
ich würde dazu gerne mal eure meinung erfahren.
-
Sowohl als auch.
Assembler ist mächtig, weil man damit hardwarenahen Zugriff hat und alles machen kann und alle Abläufe selbst in der Hand hat.
Visual Basic z.B. ist mächtig (dafür werde ich nochmal geschlagen), weil man damit in sehr wenig Zeit relativ viel machen kann.P.S. Soweit ich weiß, gibt es nur das Wort Macht aber nicht Mächtigkeit
-
Hallo,
vielleicht solltet ihr vor der Diskussion erstmal definieren, in welchem genauen Sinne ihr "Mächtigkeit" verwendet.
Ansonsten kann man auch einfach sagen, dass jede Turing-vollständige-Sprache gleichmächtig zu jeder anderen Turing-vollständigen-Sprache ist. Und damit z.B. Assembler und VB eine Suppe.
-
panta schrieb:
er vertritt die meinung, dass die sprache umso mächtiger ist, je mehr einzelne befehle zusammengefasst werden, dass hochsprachen also mächtiger sind als assembler.
ich konnte ihm da nur widersprechen, u.a. mit der argumentation, dass man mit assembler mehr machen kann, als mit vb, mit c++ mehr als vb, sie also MÄCHTIGER sind.
Der Begriff der "Mächtigkeit" einer Programmiersprache bezieht sich im üblichen Gebrauch darauf, was durch einen einzige Anweisung "bewegt" werden kann. D.h. je mehr man mit einer Anweisung ausführt, desto mächtiger ist die Sprache.
In diesem Sinne sind Hochsprachen mächtiger als z.B. Assembler, da man zum Beispiel eine Schleife in eine einzige Anweisung packen kann. Dort geschieht also sehr viel. In Assembler dagegen benötigt eine Schleife viele Anweisungen (initialisieren, Bedingung prüfen, springen), so daß also ein Einzelbefehl in Assembler weniger mächtig ist.
Wie gesagt, das ist die Definition. Was Du dagegen meinst, würde man wohl eher mit dem Begriff "Machbarkeit" umschreiben. Machbar ist in Assembler natürlich am meisten, weil man dort die CPU vollständig kontrollieren kann.
-
In Assemblerprogramme muss man zumindest mächtig viel zeit investieren, um endlich mal ans ziel zu kommen
-
Iterator schrieb:
In Assemblerprogramme muss man zumindest mächtig viel zeit investieren, um endlich mal ans ziel zu kommen
Assemblerprogrammierer machen das manuell, was Compiler machen. Nur viel langsamer!
-
Glaub ich nicht. Assemblerprogrammierer wissen im Gegensatz zum Compiler, was sie tun...
-
... hoffentlich!
-
Glaub ich nicht. Assemblerprogrammierer wissen im Gegensatz zum Compiler, was sie tun...
Seh ich nicht so. Der Compiler baut keine Fehler in seinen Assemblercode, der nicht bereits im Originalcode war. Wenn du den Originalcode versuchst per Hand nach Assembler zu übersetzen unterlaufen dir garantiert viele Fehler. Es sieht also so aus, das der Compiler ehr weiß, was er da tut. Und das macht er dann auch noch wesentlich schneller als du.
-
Wenn Du auf Englisch "Hallo Welt" sagen willst, formulierst Du dann erst "Hallo Welt" in französisch und übersetzt dann in Englisch?
Der Compiler hat keinen Plan von dem was er macht. Er arbeitet nur Vorschriften und Regeln ab, hat aber kein Verständnis dafür, was da tatsächlich vor sicht geht. Wenn Du ein Bildprogramm hast, ist diesem auch vollkommen schnurz, was das Bild darstellt, oder?
Ein Assemblerprogrammierer kennt die Aufgabe und schreibt daraufhin eine Lösung in Assembler. Wenn er Assembler richtig beherrscht, wird er dabei effizienteren Code schreiben als ein Compiler.Natürlich dauert das länger. Aber ein Compiler übersetzt nur nach Regeln. Er schreibt ja auch kein Programm selber. Also wenn überhaupt, dann müßte man einen Hochsprachen- und einen Assembler-Programmierer miteinander vergleichen. Das dabei der Assembler-Mensch langsamer ist, ist auch klar. Aber das war ja nicht das Thema.