Echte Compiler

Für allgemeine Fragen zur Programmierung, welche nicht! direkt mit Lazarus zu tun haben.
mischi
Beiträge: 206
Registriert: Di 10. Nov 2009, 18:49
OS, Lazarus, FPC: macOS, 10.13, lazarus 1.8.x, fpc 3.0.x
CPU-Target: 32Bit/64bit

Re: Echte Compiler

Beitrag von mischi »

Ich glaube, ich habe den selben Vergleich gesehen. Es waren kompilierte Sprachen UND Skriptsprache. Die Skriptsprachen haben, wie erwartet, schrecklich abgeschnitten.
MiSchi macht die fink-Pakete

Mathias
Beiträge: 6146
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Echte Compiler

Beitrag von Mathias »

Es ist erstaunlich, wie viele Skrip-Sprachen es gibt. Irgendwie erinnert mich die an GW-BASIC zurück. Da kam Turbo-Pascal und C, welche sehr effektiv waren/sind und heute hat man wieder einen Rückschritt gemacht.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Warf
Beiträge: 1907
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Echte Compiler

Beitrag von Warf »

Mathias hat geschrieben:Es ist erstaunlich, wie viele Skrip-Sprachen es gibt. Irgendwie erinnert mich die an GW-BASIC zurück. Da kam Turbo-Pascal und C, welche sehr effektiv waren/sind und heute hat man wieder einen Rückschritt gemacht.


Ist aber eigentlich Sinnig. Mittlerweile ist die Leistung von Computern so hoch das für den größten Teil der Anwendungen scriptsprachen vollkommen ausreichen. Und dafür lassen sich in Scriptsprachen dinge umsetzen die in Kompilierten sprachen so nicht möglich wären (z.B. Dynamische Typen). Die Scriptsprachen sind aber für gewöhnlich nicht auf größere programme ausgelegt (außer z.B. python das wird dann aber normalerweise auf C runter kompiliert) aber für kleinere Sachen deutlich besser geeignet als manche hochsprachen.

Ein simples bash script was Offlinezeiten mithilfe von grep ts und ping aufschreibt ist 2 minuten aufwand, in Pascal sitzt man mindestens ne stunde dran.

Aber z.B. gnu parallel was eh die meißte zeit im hintergrund wartet (und daher nicht sonderlich performant sein muss) ist in perl geschrieben und nur wenige 100 zeilen lang. In C oder Pascal wäre das ne ganze ecke mehr

Mathias
Beiträge: 6146
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Echte Compiler

Beitrag von Mathias »

Aber leider gibt es auch komplexe Anwendungen welche als Interpreter sind, zB. Eclipse.
Da muss man mal den Unterschied zu Lazarus angucken. Lazarus startet und reagiert auch viel schneller als Eclipse.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Warf
Beiträge: 1907
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Echte Compiler

Beitrag von Warf »

Mathias hat geschrieben:Aber leider gibt es auch komplexe Anwendungen welche als Interpreter sind, zB. Eclipse.
Da muss man mal den Unterschied zu Lazarus angucken. Lazarus startet und reagiert auch viel schneller als Eclipse.


Java wird nicht interpretiert. Java ist eine Virtuelle Maschine. Das ist performancemäßig ein gutes stück schneller als ein Interpreter, und ist für die meisten Anwendungen absolut ausreichend. Eclipse (vor allem mit Addons) stößt schon an seine Grenzen wobei es meist gut geht, verglichen mit z.B. Intellij (darauf baut u.a. Android Studio auf) welches absolut langsam ist. Aber an sich ist es eigentlich recht praktisch. Z.B. Endianess. In Java ist es egal ob du für den Windows Desktop oder das VW Autoradio entwickelst, du musst dir darum keine Gedanken machen.

Gleichzeitig bietet Java ein riesiges Framework, wofür man bei Lazarus sich die Packages irgendwo zusammensuchen muss und hoffen muss das sie nicht schon seit 10 Jahren outdated sind.

Deutlich schlimmer finde ich da die HTML Apps. Z.B. verwende ich Signal als alternative zu WhatsApp und dafür gibt es auch eine Desktop App die in HTML und Javascript geschrieben ist. Und als Anwendung lädt man sich dann praktisch ein vollfunktionsfähiges Chromium runter mit dieser Website lokal gespeichert. Das bläht Signal auf 200 MB auf, dafür wäre Java super geeignet.

Mathias
Beiträge: 6146
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Echte Compiler

Beitrag von Mathias »

Java wird nicht interpretiert. Java ist eine Virtuelle Maschine. Das ist performancemäßig ein gutes stück schneller als ein Interpreter, und ist für die meisten Anwendungen absolut ausreichend.
Ein voll Interpreter ist es nicht, aber auch kein echter Compiler. Java erzeugt irgend so ein Bitcode, der dann abgearbeitet wird. Das war bei GW-BASIC auch ähnlich, wen man dort eine *.BAS ladete, wurde dieser nicht als ASCII-Code in den Speicher gelegt, sonder auch irgend so ein Bitcode.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Warf
Beiträge: 1907
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Echte Compiler

Beitrag von Warf »

Mathias hat geschrieben:Ein voll Interpreter ist es nicht, aber auch kein echter Compiler. Java erzeugt irgend so ein Bitcode, der dann abgearbeitet wird. Das war bei GW-BASIC auch ähnlich, wen man dort eine *.BAS ladete, wurde dieser nicht als ASCII-Code in den Speicher gelegt, sonder auch irgend so ein Bitcode.


Doch es ist ein Compiler für eine Virtuelle CPU. Du kannst ja auch Pascal code mit dem FPC oder C Code für die JVM kompilieren. Oder Scala ist eine komplett eigene Sprache die auf JVM Bytecode runterkompiliert.

Mathias
Beiträge: 6146
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Echte Compiler

Beitrag von Mathias »

Sieht auch recht Elegant aus, egal mit oder ohne with.
Aber der dort erzeugt Bit-Code muss nachher doch noch interpretiert werden, das dies auf jeder CPU anders abgearbeitet werden muss. Java läuft auch Intel und ARM, andere weis ich nicht.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Warf
Beiträge: 1907
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Echte Compiler

Beitrag von Warf »

Mathias hat geschrieben:Aber der dort erzeugt Bit-Code muss nachher doch noch interpretiert werden, das dies auf jeder CPU anders abgearbeitet werden muss. Java läuft auch Intel und ARM, andere weis ich nicht.


Ja dann nennt man es nicht Interpreter sondern VM. Wenn ich ein ARM Linux in QEMU laufen lasse sagst du ja auch nicht ich lasse einen Linux Interpreter laufen oder?

Interpreter bezeichnen programme die auf Source Code einer Hochsprache arbeiten, VM's arbeiten auf Assemby (z.B. Java Bytecode order auch x86). Klar kann man eine VM auch als Assembly interpreter bezeichnen, allerdings wird das dem konzept einer VM nicht gerecht.

Mathias
Beiträge: 6146
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Echte Compiler

Beitrag von Mathias »

Wenn ich ein ARM Linux in QEMU laufen lasse sagst du ja auch nicht ich lasse einen Linux Interpreter laufen oder?
Funktioniert ein ARM-Linux auf einem Intel-PC ?
Oder wird da einfach alles emuliert und alles wird gähnend langsam ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Warf
Beiträge: 1907
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Echte Compiler

Beitrag von Warf »

Mathias hat geschrieben:Funktioniert ein ARM-Linux auf einem Intel-PC ?
Oder wird da einfach alles emuliert und alles wird gähnend langsam ?

QEMU ist ein Emulator. Solang man kein Grafisches Userinterface verwendet läuft es allerdings ganz fix hab ich mir sagen lassen, hab es aber noch nicht selbst ausprobiert.

Mathias
Beiträge: 6146
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Echte Compiler

Beitrag von Mathias »

Dann wird es vergleichbar mit der DOSBox sein.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

creed steiger
Beiträge: 957
Registriert: Mo 11. Sep 2006, 22:56

Re: Echte Compiler

Beitrag von creed steiger »

BeniBela hat geschrieben:
creed steiger hat geschrieben:Ada ist halt in Raum und Luftfahrt stark.


Ob man da mit Pascalerfahrung gute Chancen auf einen Job bei der ESA hat?


http://www.esa.int/TEC/Software_enginee ... BQE_0.html

Antworten