Wie funktioniert fpc/Delphi intern
-
- Beiträge: 174
- Registriert: Do 3. Mär 2011, 21:34
- OS, Lazarus, FPC: WinXp/7/10 Opensuse13.2/Leap15.3 (L 2.2.0 FPC 3.2.2 )
- CPU-Target: Intel 32/64Bit, ARM9
- Wohnort: Ulm
Wie funktioniert fpc/Delphi intern
Hallo zusammen,
ich habe Verschiedenes über Programmiersprachen /Kompiler usw. gelesen.
Da steht u.a. Lazarus kann sich selber kompilieren. Jetzt bin ich aber über GCC gestolpert
was mich in meinem Wissen verunsichert hat.
Wie tickt fpc/Delphi intern? Werkelt da C im Hintergrund mit.
Wer compiliert jetzt da?
Schon mal danke für eine Antwort
Gruß
NoCee
ich habe Verschiedenes über Programmiersprachen /Kompiler usw. gelesen.
Da steht u.a. Lazarus kann sich selber kompilieren. Jetzt bin ich aber über GCC gestolpert
was mich in meinem Wissen verunsichert hat.
Wie tickt fpc/Delphi intern? Werkelt da C im Hintergrund mit.
Wer compiliert jetzt da?
Schon mal danke für eine Antwort
Gruß
NoCee
- af0815
- Lazarusforum e. V.
- Beiträge: 6791
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Wie funktioniert fpc/Delphi intern
Ganz einfach, der fpc kann seit Jahren den fpc kompilieren. Deswegen gibt es auch die Regeln zu den Bootstrap Compilern. Sprich der letzte stable wird verwendet und der konpilierte compiler muss sich srlbst compilieren können. Das ist für die Mainstream compiler so.
Auf verschiedenen Plattformen können natürlich andere (cross)- Compiler chains verwendet werden, die auch den gcc verwenden können. fpc als Compiler bzw. auch als Transpiler können natürlich auch (zwischen)-Code erzeugen, der erst vom gcc der Plattform in den endgültigen ausführbaren Code der Plattform bringt.
Bei Lazarus ist eine Trennung. Die IDE ist Lazarus, der Compiler ist der FPC. Bei Delphi ist das monolitisch zu sehen. Weil für eine kurze Zeit wurde auch dort der FPC verwendet. Zumindest behaupten das die Sagen aus längst vergangenen Zeiten.
Auf verschiedenen Plattformen können natürlich andere (cross)- Compiler chains verwendet werden, die auch den gcc verwenden können. fpc als Compiler bzw. auch als Transpiler können natürlich auch (zwischen)-Code erzeugen, der erst vom gcc der Plattform in den endgültigen ausführbaren Code der Plattform bringt.
Bei Lazarus ist eine Trennung. Die IDE ist Lazarus, der Compiler ist der FPC. Bei Delphi ist das monolitisch zu sehen. Weil für eine kurze Zeit wurde auch dort der FPC verwendet. Zumindest behaupten das die Sagen aus längst vergangenen Zeiten.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: Wie funktioniert fpc/Delphi intern
Hi!
Die Herangehensweisen von fpc und Delphi unterscheiden sich grundlegend:
Free Pascal produziert im Backend Assembler code, der von dem jeweils zuständigen Assembler und dann dem Linker zu einem ausführbaren Binärcode zusammengebaut werden.
Durch diese Herangehensweise kann der fpc auf vielen verschiedenen Prozessoren und Betriebssystemen ausgeführt werden.
Delphi ist anders gestrickt. Die IDE selbst ist in Delphi geschrieben. Der Compiler war im Anfang in C geschrieben. Irgendwann wurde darüber gemunkelt, den nach C++ zu portieren. Ich weiss nicht, ob das inzwischen passiert ist.
Aufgrund dieser unflexiblen Struktur hat es Delphi wesentlich schwerer mit anderen Prozessoren und Betriebssystemen.
Winni
Die Herangehensweisen von fpc und Delphi unterscheiden sich grundlegend:
Free Pascal produziert im Backend Assembler code, der von dem jeweils zuständigen Assembler und dann dem Linker zu einem ausführbaren Binärcode zusammengebaut werden.
Durch diese Herangehensweise kann der fpc auf vielen verschiedenen Prozessoren und Betriebssystemen ausgeführt werden.
Delphi ist anders gestrickt. Die IDE selbst ist in Delphi geschrieben. Der Compiler war im Anfang in C geschrieben. Irgendwann wurde darüber gemunkelt, den nach C++ zu portieren. Ich weiss nicht, ob das inzwischen passiert ist.
Aufgrund dieser unflexiblen Struktur hat es Delphi wesentlich schwerer mit anderen Prozessoren und Betriebssystemen.
Winni
-
- Beiträge: 958
- Registriert: Mi 3. Jun 2020, 07:18
- OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
- CPU-Target: Aarch64 bis Z80 ;)
- Wohnort: München
Re: Wie funktioniert fpc/Delphi intern
Ganz entschieden: Nein. gcc ist da nie involviert. Das einzige was für andere Plattformen benötigt wird, wenn FPC die nicht selbst bereitstellt, sind Assembler und Linker. Diese sind Teil des GNU binutils Projekts und nicht von gcc. Und selbst für den Fall, dass clang genutzt wird (zum Beispiel aarch64-win64), wird hier nur der Assembler Teil genutzt und nicht der C Compiler.af0815 hat geschrieben: Fr 11. Mär 2022, 19:13 fpc als Compiler bzw. auch als Transpiler können natürlich auch (zwischen)-Code erzeugen, der erst vom gcc der Plattform in den endgültigen ausführbaren Code der Plattform bringt.
FPC Compiler Entwickler
- af0815
- Lazarusforum e. V.
- Beiträge: 6791
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Wie funktioniert fpc/Delphi intern
Mea culpa, ich habe da den Assembler (AS) und gcc in einen falschen Topf geworfen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 174
- Registriert: Do 3. Mär 2011, 21:34
- OS, Lazarus, FPC: WinXp/7/10 Opensuse13.2/Leap15.3 (L 2.2.0 FPC 3.2.2 )
- CPU-Target: Intel 32/64Bit, ARM9
- Wohnort: Ulm
Re: Wie funktioniert fpc/Delphi intern
Mich beschleicht der Verdacht, daß ich das auch gemacht habe.af0815 hat geschrieben: Mo 14. Mär 2022, 17:38 Mea culpa, ich habe da den Assembler (AS) und gcc in einen falschen Topf geworfen.
Außerdem mußte ich feststellen, daß GCC nicht mehr C-Compiler heißt sondern GNU Compiler Collection.
War mir jetzt auch neu.
Danke für die Infos
Gruß
NoCee
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: Wie funktioniert fpc/Delphi intern
Hi!
Die heißen jetzt
GCC, the GNU Compiler Collection
weil die viele Frontends für diverse Sprachen haben, aber sich ein Backend teilen.
Nicht nur C oder C ++, es gibt auch Fortran oder Ada:
https://gcc.gnu.org/
GNU Pascal ist nicht mehr dabei - das ist so um 2005 leise verstorben.
Winni
Die heißen jetzt
GCC, the GNU Compiler Collection
weil die viele Frontends für diverse Sprachen haben, aber sich ein Backend teilen.
Nicht nur C oder C ++, es gibt auch Fortran oder Ada:
https://gcc.gnu.org/
GNU Pascal ist nicht mehr dabei - das ist so um 2005 leise verstorben.
Winni
-
- Beiträge: 2122
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: Wie funktioniert fpc/Delphi intern
GCC besteht aus verschiedenen compilern, dem GNU C Compiler der auch den namen gcc trägt (woher die verwirrung stammt), dem GNU C++ Compiler, der g++ heist, der GNU Fortran Compiler, der gfortran heist, der GNU Ada Compiler der gnat heist, und noch ein paar mehr die mir jetzt nicht alle einfallen (ich glaube Objective C ist auch noch dabei, weis aber nicht wie der heist).
GCC ist also sowohl der Name für den C Compiler als auch für die Suite, ähnlich wie Delphi der Name für die IDE und den compiler ist
GCC ist also sowohl der Name für den C Compiler als auch für die Suite, ähnlich wie Delphi der Name für die IDE und den compiler ist
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: Wie funktioniert fpc/Delphi intern
Hi!
Das neueste von gcc:
Fork der GNU Compiler Collection;: Cobol
https://www.heise.de/news/Frischzellenk ... 2634.html
Damit die Banken nicht die Programmiersprache wechseln müssen - oder wie???
Winni
Das neueste von gcc:
Fork der GNU Compiler Collection;: Cobol
https://www.heise.de/news/Frischzellenk ... 2634.html
Damit die Banken nicht die Programmiersprache wechseln müssen - oder wie???
Winni