Echte Compiler
-
- Beiträge: 6899
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Echte Compiler
Was gibt es gegenwärtig für Compiler, welche einen effizienten Code erzeugen ?
Ich kenne nur folgende C/C++, Delphi und FPC.
Die meisten Sprachen die kenne sind Interpreter, darunter gehören Java, C#, Pyhton, etc.
Ich kenne nur folgende C/C++, Delphi und FPC.
Die meisten Sprachen die kenne sind Interpreter, darunter gehören Java, C#, Pyhton, etc.
Zuletzt geändert von Mathias am Mo 6. Aug 2018, 20:38, insgesamt 1-mal geändert.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 134
- Registriert: So 30. Nov 2008, 21:53
Re: Echte Compiler
Na ja, da wäre ja auch noch Delphi (oder ist das hier verboten?). Außerdem jede Menge Fortran und ADA. Laut Info unterstützt zB die GNU Compiler Suite neben C/C++ noch Fortran, Ada, und Go.
-
- Beiträge: 6899
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Echte Compiler
Natürlich nicht, dies habe ich vergessen., ich werde es oben ergänzen.Na ja, da wäre ja auch noch Delphi (oder ist das hier verboten?).
Sind dies nicht sehr unbekannt Compiler ?Außerdem jede Menge Fortran und ADA.
Da würde doch auch Oberon und Modula 2 dazu gehören oder ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 2118
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: Echte Compiler
Vieles geht mittlerweile über LLVM backend, da sich der compilerbau dann nicht mehr über Plattform spezifika Gedanken zu machen. Am Ende werden die aber auch echt kompiliert, also kann man auch noch Rust und Swift dazuzählen
Außerdem kann man afaik einige scriptsprachen wie python auch kompilieren (sogar recht gut da python typstreng ist gegenüber z.b. Javascript)
Außerdem kann man afaik einige scriptsprachen wie python auch kompilieren (sogar recht gut da python typstreng ist gegenüber z.b. Javascript)
-
- Beiträge: 134
- Registriert: So 30. Nov 2008, 21:53
Re: Echte Compiler
Unbekannt ist relativ. Fortran ist neben Cobol einer der ältesten Compiler überhaupt und wird wie C/C++ ständig weiter entwickelt . Ein großer Teil der numerischen Algorithmen wird heute noch in Fortran geschrieben. Und viele C-Bibliothen verwenden einen Fortran-to-C-Übersetzer, weil es vielfacher ist, als stabilen bewährten Code neu zu erfindem.Mathias hat geschrieben:Natürlich nicht, dies habe ich vergessen., ich werde es oben ergänzen.Na ja, da wäre ja auch noch Delphi (oder ist das hier verboten?).
Sind dies nicht sehr unbekannt Compiler ?Außerdem jede Menge Fortran und ADA.
Da würde doch auch Oberon und Modula 2 dazu gehören oder ?
Modula(-2) ist allerdings etwas angestaubt, zu Oberon-7 siehe https://en.wikipedia.org/wiki/Oberon_%2 ... #Oberon-07.
Und dann gibt es ja auch noch diverse Basic-Compiler (zB https://freebasic.net/)
-
- Beiträge: 2118
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: Echte Compiler
Ja ist fortran nicht auch der defacto standard im high performance computing und in fast allen wissenschaftlichen Anwendungen z.B. der Physik?indianer-frank hat geschrieben:Unbekannt ist relativ. Fortran ist neben Cobol einer der ältesten Compiler überhaupt und wird wie C/C++ ständig weiter entwickelt . Ein großer Teil der numerischen Algorithmen wird heute noch in Fortran geschrieben. Und viele C-Bibliothen verwenden einen Fortran-to-C-Übersetzer, weil es vielfacher ist, als stabilen bewährten Code neu zu erfindem.
Und Cobol wird bis heute im Bankwesen verwendet. Extrem Domänspezifisch, da werden die sprachen aber noch sehr viel eingesetzt. Ich würde sogar schätzen das mehr in Cobol entwickelt wird als Ada.
-
- Beiträge: 6899
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Echte Compiler
Von dem habe ich auch schon gehört. Ich habe ihn gerade probiert, ein HelloWorld ist kleiner als das von FPC.Und dann gibt es ja auch noch diverse Basic-Compiler (zB https://freebasic.net/)
FreeBasic --> 22.9KB
FPC --> 176.6KB
Sogar ein kleines OpenGL Demo hat nur 23.2KB.

Dies wurde sogar auf Anhieb kompiliert, ohne irgendwelche Bibliotheken suche.
Da könnte C/C++ noch einiges abgucken, dort ist es eine Seltenheit, das etwas auf Anhieb geht.

Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 958
- Registriert: Mo 11. Sep 2006, 22:56
Re: Echte Compiler
Ada ist halt in Raum und Luftfahrt stark.
-
- Beiträge: 6899
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Echte Compiler
Dies habe ich auch schon gehört, da angeblich Ada sehr zuverlässig arbeitet.creed steiger hat geschrieben:Ada ist halt in Raum und Luftfahrt stark.
Auch ist sie sehr ähnlich zu Pascal.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 2118
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: Echte Compiler
Ist eine Art strikteres Pascal. So muss man z.B. bei einem end sagen was man quittiert z.B.Mathias hat geschrieben:Dies habe ich auch schon gehört, da angeblich Ada sehr zuverlässig arbeitet.
Auch ist sie sehr ähnlich zu Pascal.
Code: Alles auswählen
function Minimum (A, B: Integer) return Integer is
begin
if A <= B then
return A;
else
return B;
end if;
end Minimum;
-
- 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
Mir ist neulich D als Sprache aufgefallen, die sehr schnellen Code erzeugt. Was ich so gesehen habe, sind C, D und Fortran die schnellsten. Aber wenn es darauf ankommt, sollte man seinen Code mit einem profiler überprüfen, wo der oder die Flaschenhälse sind und sich Gedanken über diese Stellen machen, ob es nicht schneller geht. Eine interessante Erfahrung mit altem Fortran-Code habe ich schon öfter mal zum Besten gegeben: Nach der Umwandlung von altem Fortran-Spaghetti-Code mit computed IFs und GOTOs in moderne IFs und Schleifen lief der Code schneller. Anscheinend konnte der Compiler den modernen Code besser optimieren. FPC ist aber gar nicht so schlecht, vor allem bei Intel. Ich bin schon auch gespannt, wie das mal mit dem llvm backend sein wird.
MiSchi macht die fink-Pakete
-
- Beiträge: 320
- Registriert: Sa 21. Mär 2009, 17:31
- OS, Lazarus, FPC: Linux (Lazarus SVN, FPC 2.4)
- CPU-Target: 64 Bit
Re: Echte Compiler
Ob man da mit Pascalerfahrung gute Chancen auf einen Job bei der ESA hat?creed steiger hat geschrieben:Ada ist halt in Raum und Luftfahrt stark.
Re: Echte Compiler
Genau, da ist es ziemlich egal, welchen Compiler man benutzt. Die meisten Probleme sitzen in der Logik des Codes. Beliebtes Beispiel: Beim Durchlaufen der Records eines Dataset in der Schleife immer FieldByName aufrufen.mischi hat geschrieben:Aber wenn es darauf ankommt, sollte man seinen Code mit einem profiler überprüfen, wo der oder die Flaschenhälse sind und sich Gedanken über diese Stellen machen, ob es nicht schneller geht.
-
- Beiträge: 98
- Registriert: Di 4. Aug 2015, 15:29
- OS, Lazarus, FPC: Linux, Raspbian, Windows
- CPU-Target: 64/32 Bit
Re: Echte Compiler
Hallo Mathias,
kürzlich habe ich mal in einem Beitrag einen Vergleich der Code-Effizienz von verschiedenen Programmiersprachen gesehen. Dabei wurden recht viele Programmiersprachen beleuchtet.
Erwartungsgemäß war der effizienteste Code der von Assembler erzeugte...
Die nächst effiziente Gruppe war die Welt der C-Sprachen. In diese Kategorie fallen auch so Sprachen wie COBOL. Ursache war, dass die Compiler Tool Chain aus COBOL C-Code erzeugt und sich dann der entsprechenden Reife der C-Compiler bedient.
Die pascaloiden Programmiersprachen waren gegenüber C nur unwesentlich ineffizienter.
Alle anderen Programmiersprachen erzeugen Code, der um wenige Vielfache mehr Zeit mit der Abarbeitung benötigt - nach oben offen. Bei so manchen Programmiersprachen drängt sich der Verdacht aus, dass in Wirklichkeit ein kleiner Alan Turing persönlich die Bits schiebt.
Beste Grüße
Andreas
kürzlich habe ich mal in einem Beitrag einen Vergleich der Code-Effizienz von verschiedenen Programmiersprachen gesehen. Dabei wurden recht viele Programmiersprachen beleuchtet.
Erwartungsgemäß war der effizienteste Code der von Assembler erzeugte...
Die nächst effiziente Gruppe war die Welt der C-Sprachen. In diese Kategorie fallen auch so Sprachen wie COBOL. Ursache war, dass die Compiler Tool Chain aus COBOL C-Code erzeugt und sich dann der entsprechenden Reife der C-Compiler bedient.
Die pascaloiden Programmiersprachen waren gegenüber C nur unwesentlich ineffizienter.
Alle anderen Programmiersprachen erzeugen Code, der um wenige Vielfache mehr Zeit mit der Abarbeitung benötigt - nach oben offen. Bei so manchen Programmiersprachen drängt sich der Verdacht aus, dass in Wirklichkeit ein kleiner Alan Turing persönlich die Bits schiebt.
Beste Grüße
Andreas
Ubuntu 14.04 LTS / Raspbian / Windows: Lazarus ab 0.9 bis 3.0
-
- Beiträge: 2118
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: Echte Compiler
Ging es dabei nur um kompilierte sprachen oder um alle (also wurde auch die runtime von Java, C#, etc. vergliche). Denn bei nur Kompilierten sprachen ist das zu erwarten. als pascaloide fasst man normalerwise von Algol zu Oberon alles zusammen, sowie man unter C-Sprachen auch meist D, C++, etc. zusammenfasst. Das ding ist, dann bleiben praktisch keine anderen sprachen mehr übrig. Fortran wird afaik mittlerweile auch meist zu C kompiliert, und fast alle anderen modernen kompilierten sprachen die das nicht machen kompilieren zu LLVM (was wahrscheinlich auch zu C gezählt wurde).AndreasMR hat geschrieben:Hallo Mathias,
kürzlich habe ich mal in einem Beitrag einen Vergleich der Code-Effizienz von verschiedenen Programmiersprachen gesehen. Dabei wurden recht viele Programmiersprachen beleuchtet.
Erwartungsgemäß war der effizienteste Code der von Assembler erzeugte...
Die nächst effiziente Gruppe war die Welt der C-Sprachen. In diese Kategorie fallen auch so Sprachen wie COBOL. Ursache war, dass die Compiler Tool Chain aus COBOL C-Code erzeugt und sich dann der entsprechenden Reife der C-Compiler bedient.
Die pascaloiden Programmiersprachen waren gegenüber C nur unwesentlich ineffizienter.
Alle anderen Programmiersprachen erzeugen Code, der um wenige Vielfache mehr Zeit mit der Abarbeitung benötigt - nach oben offen. Bei so manchen Programmiersprachen drängt sich der Verdacht aus, dass in Wirklichkeit ein kleiner Alan Turing persönlich die Bits schiebt.
Beste Grüße
Andreas
Damit bleiben nur kleinere sprachen, welche von irgendwelchen Privatpersonen gebaut werden. Sowohl die großen C kompiler als auch die Pascalartigen Compiler sind meißt von größeren Teams von Profis gebaut.