Echte Compiler

Für allgemeine Fragen zur Programmierung, welche nicht! direkt mit Lazarus zu tun haben.

Echte Compiler

Beitragvon Mathias » 6. Aug 2018, 17:33 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.
Zuletzt geändert von Mathias am 6. Aug 2018, 19:38, insgesamt 1-mal geändert.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4342
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon indianer-frank » 6. Aug 2018, 19:34 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.
indianer-frank
 
Beiträge: 134
Registriert: 30. Nov 2008, 21:53

Beitragvon Mathias » 6. Aug 2018, 19:37 Re: Echte Compiler

Na ja, da wäre ja auch noch Delphi (oder ist das hier verboten?).

Natürlich nicht, dies habe ich vergessen., ich werde es oben ergänzen.

Außerdem jede Menge Fortran und ADA.
Sind dies nicht sehr unbekannt Compiler ?
Da würde doch auch Oberon und Modula 2 dazu gehören oder ?
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4342
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Warf » 6. Aug 2018, 19:45 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)
Warf
 
Beiträge: 985
Registriert: 23. Sep 2014, 16:46
Wohnort: Aachen
OS, Lazarus, FPC: Mac OSX 10.11 | Win 10 | FPC 3.0.0 | L trunk | 
CPU-Target: x86_64, i368, ARM
Nach oben

Beitragvon indianer-frank » 6. Aug 2018, 19:52 Re: Echte Compiler

Mathias hat geschrieben:
Na ja, da wäre ja auch noch Delphi (oder ist das hier verboten?).

Natürlich nicht, dies habe ich vergessen., ich werde es oben ergänzen.

Außerdem jede Menge Fortran und ADA.
Sind dies nicht sehr unbekannt Compiler ?
Da würde doch auch Oberon und Modula 2 dazu gehören oder ?

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.

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/)
indianer-frank
 
Beiträge: 134
Registriert: 30. Nov 2008, 21:53

Beitragvon Warf » 6. Aug 2018, 20:09 Re: Echte Compiler

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.


Ja ist fortran nicht auch der defacto standard im high performance computing und in fast allen wissenschaftlichen Anwendungen z.B. der Physik?

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.
Warf
 
Beiträge: 985
Registriert: 23. Sep 2014, 16:46
Wohnort: Aachen
OS, Lazarus, FPC: Mac OSX 10.11 | Win 10 | FPC 3.0.0 | L trunk | 
CPU-Target: x86_64, i368, ARM
Nach oben

Beitragvon Mathias » 6. Aug 2018, 20:17 Re: Echte Compiler

Und dann gibt es ja auch noch diverse Basic-Compiler (zB https://freebasic.net/)

Von dem habe ich auch schon gehört. Ich habe ihn gerade probiert, ein HelloWorld ist kleiner als das von FPC.
FreeBasic --> 22.9KB
FPC --> 176.6KB

Sogar ein kleines OpenGL Demo hat nur 23.2KB. :shock:
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. :wink:
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4342
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon creed steiger » 6. Aug 2018, 20:17 Re: Echte Compiler

Ada ist halt in Raum und Luftfahrt stark.
creed steiger
 
Beiträge: 943
Registriert: 11. Sep 2006, 21:56

Beitragvon Mathias » 6. Aug 2018, 20:19 Re: Echte Compiler

creed steiger hat geschrieben:Ada ist halt in Raum und Luftfahrt stark.
Dies habe ich auch schon gehört, da angeblich Ada sehr zuverlässig arbeitet.
Auch ist sie sehr ähnlich zu Pascal.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4342
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Warf » 6. Aug 2018, 22:04 Re: Echte Compiler

Mathias hat geschrieben:Dies habe ich auch schon gehört, da angeblich Ada sehr zuverlässig arbeitet.
Auch ist sie sehr ähnlich zu Pascal.


Ist eine Art strikteres Pascal. So muss man z.B. bei einem end sagen was man quittiert z.B.
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;


Wollte mal Ada lernen, doch irgendwie hab ich nie so den anschluss an die Sprache gefunden. Ich schaue mir aktuell Oberon an, faszinierend das ein gesamtes Betriebsystem in 200kb Source files passt. Auch wenn ich irgendwie nicht so ganz verstehe wo ich das tatsächliche System herbekomme und nicht nur die Sources
Warf
 
Beiträge: 985
Registriert: 23. Sep 2014, 16:46
Wohnort: Aachen
OS, Lazarus, FPC: Mac OSX 10.11 | Win 10 | FPC 3.0.0 | L trunk | 
CPU-Target: x86_64, i368, ARM
Nach oben

Beitragvon mischi » 7. Aug 2018, 07:24 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
mischi
 
Beiträge: 205
Registriert: 10. Nov 2009, 18:49
OS, Lazarus, FPC: macOS, 10.13, lazarus 1.8.x, fpc 3.0.x | 
CPU-Target: 32Bit/64bit
Nach oben

Beitragvon BeniBela » 7. Aug 2018, 18:14 Re: Echte Compiler

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?
BeniBela
 
Beiträge: 248
Registriert: 21. Mär 2009, 17:31
OS, Lazarus, FPC: Linux (Lazarus SVN, FPC 2.4) | 
CPU-Target: 64 Bit
Nach oben

Beitragvon wp_xyz » 7. Aug 2018, 18:26 Re: Echte Compiler

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.

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.
wp_xyz
 
Beiträge: 2696
Registriert: 8. Apr 2011, 08:01

Beitragvon AndreasMR » 11. Aug 2018, 20:43 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
Ubuntu 14.04 LTS / Raspbian / Windows: Lazarus ab 0.9 bis 3.0
AndreasMR
 
Beiträge: 88
Registriert: 4. Aug 2015, 14:29
OS, Lazarus, FPC: Linux, Raspbian, Windows | 
CPU-Target: 64/32 Bit
Nach oben

Beitragvon Warf » 11. Aug 2018, 21:03 Re: Echte Compiler

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


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).
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.
Warf
 
Beiträge: 985
Registriert: 23. Sep 2014, 16:46
Wohnort: Aachen
OS, Lazarus, FPC: Mac OSX 10.11 | Win 10 | FPC 3.0.0 | L trunk | 
CPU-Target: x86_64, i368, ARM
Nach oben

» Weitere Beiträge siehe nächste Seite »
Nächste

Zurück zu Programmierung



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

porpoises-institution
accuracy-worried