Autor |
Beitrag |
adler
      
Beiträge: 511
Windows XP
Delphi 05 Pers
|
Verfasst: So 10.10.04 13:36
Servus.
Micht würde es nur mal interessieren, wo man infos zum Thema "Compiler" herbekommt.
Auch zum Thema "Linker" wäre es nicht schlecht.
Aber zum Anfang möchte ich nur mal ein Compiler für PHP schreiben.
Also Die Syntax checken usw.
ThX!
Erwünschte Antworten:
Tutorials
FAQs
Ander Infos
usw.
*gg*
Mfg Adler
_________________ Wo's nix zu gucken gibt, gibts vielleicht was zu hören.
|
|
raziel
      
Beiträge: 2453
Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
|
Verfasst: So 10.10.04 14:56
Du könntest Dir mal die Docs zum Freepascal Compiler anschauen. Es gibt auch ein Tutorial von einem gewissen Crenshaw, der einen Basic-Compiler für den 68k mit Turbo Pascal codet. Für den Einstieg bestimmt nicht schlecht, wenn auch das Endprodukt Richtung unbrauchbar sein wird, weil du wahrscheinlich keinen 68k Prozessor hast 
_________________ JSXGraph
|
|
Gast
Gast
Erhaltene Danke: 1
|
Verfasst: So 10.10.04 15:14
adler hat folgendes geschrieben: | Micht würde es nur mal interessieren, wo man infos zum Thema "Compiler" herbekommt.
Auch zum Thema "Linker" wäre es nicht schlecht.
Aber zum Anfang möchte ich nur mal ein Compiler für PHP schreiben.
Also Die Syntax checken usw. |
Um die Syntax zu checken brauchst du sowas wie www.devincook.com/goldparser/ aber sicher nicht gleich einen Compiler
Die ganzen GNU-Compiler wandeln übrigens erst die Hochsprache in ASM und jagen den Rest durch den Assembler (zB FreePascal).
|
|
tommie-lie
      
Beiträge: 4373
Ubuntu 7.10 "Gutsy Gibbon"
|
Verfasst: So 10.10.04 15:32
Assarbad hat folgendes geschrieben: | Die ganzen GNU-Compiler wandeln übrigens erst die Hochsprache in ASM und jagen den Rest durch den Assembler (zB FreePascal). |
Tun das nicht mittlerweile alle Compiler? 
_________________ Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
|
|
Gast
Gast
Erhaltene Danke: 1
|
Verfasst: So 10.10.04 16:33
Nein, manche lassen den Zwischenschritt weg - quasi eingebauter "Assembler".
|
|
obbschtkuche
Gast
Erhaltene Danke: 1
|
Verfasst: So 10.10.04 18:12
Zum PE-Format kannst du dir mal den quelltext von perdr ansehen, so hab ichs gemacht:
perdr.sf.net/
Ansonsten hab ich eigentlich nur die Ausgabe vom Delphi-Compiler und das hier benutzt: nasm.sourceforge.net...c/html/nasmdocb.html
Assarbad hat folgendes geschrieben: | Nein, manche lassen den Zwischenschritt weg - quasi eingebauter "Assembler". |
Was ich auch sinnvoller finde. Es nicht so zu machen ist zwar weniger Arbeit aber da dafür auch zweimal geparsed werden muss langsamer.
|
|
Gast
Gast
Erhaltene Danke: 1
|
Verfasst: So 10.10.04 19:20
obbschtkuche hat folgendes geschrieben: | Zum PE-Format kannst du dir mal den quelltext von perdr ansehen, so hab ichs gemacht:
perdr.sf.net/ |
Daumen hoch!!!  geiles Projekt. Schau ich mir morgen gleich mal genauer an.
|
|
MrSaint
      
Beiträge: 1033
Erhaltene Danke: 1
WinXP Pro SP2
Delphi 6 Prof.
|
Verfasst: Do 14.10.04 11:04
adler hat folgendes geschrieben: | Aber zum Anfang möchte ich nur mal ein Compiler für PHP schreiben. |
Hi!
Nur mal ne kleine Definitionssache: PHP braucht keinen Compiler, sondern einen Interpreter! Ein Compiler (z.B. der Delphi-Compiler) ist ein Tool, welches Quellcode in ausführbaren Binärcode übersetzt. Wenn man das Programm dann weitergeben will, gibt man den Binärcode (also bei Delphi EXEs, DLLs etc.) weiter. Bei einem Interpreter ist das anders: Ein Interpreter liest den Quellcode und führt ihn gleich aus. Um das Programm (oder im PHP-Fall Script) weiterzugeben, gibt man den kompletten Sourcecode weiter.
Nur so nebenbei
MrSaint
_________________ "people knew how to write small, efficient programs [...], a skill that has subsequently been lost"
Andrew S. Tanenbaum - Modern Operating Systems
|
|
Gast
Gast
Erhaltene Danke: 1
|
Verfasst: Do 14.10.04 11:24
MrSaint hat folgendes geschrieben: | Nur mal ne kleine Definitionssache: PHP braucht keinen Compiler, sondern einen Interpreter! Ein Compiler (z.B. der Delphi-Compiler) ist ein Tool, welches Quellcode in ausführbaren Binärcode übersetzt. Wenn man das Programm dann weitergeben will, gibt man den Binärcode (also bei Delphi EXEs, DLLs etc.) weiter. Bei einem Interpreter ist das anders: Ein Interpreter liest den Quellcode und führt ihn gleich aus. Um das Programm (oder im PHP-Fall Script) weiterzugeben, gibt man den kompletten Sourcecode weiter. |
In welche Schublade steckst du denn dann Perl und Java? Nur mal so nebenbei
Ich finde nur deine Aussage etwas zu allgemein
|
|
MrSaint
      
Beiträge: 1033
Erhaltene Danke: 1
WinXP Pro SP2
Delphi 6 Prof.
|
Verfasst: Do 14.10.04 11:33
Assarbad hat folgendes geschrieben: | In welche Schublade steckst du denn dann Perl und Java? Nur mal so nebenbei
Ich finde nur deine Aussage etwas zu allgemein |
Perl is für mich n Interpreter, hatte aber noch net so viel damit zu tun... Wie das nu bei Java aussieht, weiß ich net genau, hab mit Java _noch_ nichts am Hut gehabt, wird aber bald kommen (Studium). Aber soweit ich weiß braucht Java auch nen Interpreter, wobei ich net glaub, dass die da den reinen Java-Source mitliefern bei nem Programm  Also bei dem "normalen" Java weiß ich's net genau. Ich hab nu aber auch von nem Java-Compiler gehört, mit dem es möglich is, n Betriebssystem zu schreiben (wurde an meiner Uni anscheined so umgesetzt: Plurix, wobei die den Compiler hier wohl selbst geschrieben haben). Also normalerweise würd ich sagen so n Zwitterding, lass mich da aber gern belehren, weil ich's wirklich net sicher weiß
Bei PHP is es auf jeden Fall n Interpreter  Wobeio, man könnte bestimmt auch nen Compiler draus basteln *g* Hat aber gleub noch niemand umgesetzt
MrSaint
_________________ "people knew how to write small, efficient programs [...], a skill that has subsequently been lost"
Andrew S. Tanenbaum - Modern Operating Systems
|
|
raziel
      
Beiträge: 2453
Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
|
Verfasst: Do 14.10.04 11:50
Ich würd sagen, es ist unabhängig von der Sprache, obs interpretiert oder compiliert wird, es kommt auf das Programm an, das die jeweiligen Skripten interpretiert und ggf. noch compiliert. 
_________________ JSXGraph
|
|
MrSaint
      
Beiträge: 1033
Erhaltene Danke: 1
WinXP Pro SP2
Delphi 6 Prof.
|
Verfasst: Do 14.10.04 11:56
raziel hat folgendes geschrieben: | Ich würd sagen, es ist unabhängig von der Sprache, obs interpretiert oder compiliert wird, es kommt auf das Programm an, das die jeweiligen Skripten interpretiert und ggf. noch compiliert.  |
gut, also ich bin nu halt bei PHP und Perl von den "Standardanwendungen" ausgegangen... Ich hab noch nie n compilierten PHP-SOurce oder compilierten Perl-Source gesehn...
MrSaint
_________________ "people knew how to write small, efficient programs [...], a skill that has subsequently been lost"
Andrew S. Tanenbaum - Modern Operating Systems
|
|
Alni
      
Beiträge: 205
Win 2000, XP, SuSe, Debian
D5 Prof, D7 Prof, Kylix
|
Verfasst: Do 14.10.04 12:01
Java ist ne Mischung. Zuerst wird der sogenannte Bytecode erzeugt (compiliert) und dieser dann auf verschiedenen Systemem interpretiert (Edit: bzw auf der Java Virtual Machine ausgeführt).
_________________ MfG Alex
|
|
Gast
Gast
Erhaltene Danke: 1
|
Verfasst: Do 14.10.04 12:43
Alni hat folgendes geschrieben: | Java ist ne Mischung. Zuerst wird der sogenannte Bytecode erzeugt (compiliert) und dieser dann auf verschiedenen Systemem interpretiert (Edit: bzw auf der Java Virtual Machine ausgeführt). |
Perlscipte werden (bis auf EVALs) auch vorher kompiliert! Daher meine Frage. Ich glaube man kann heute nicht mehr zwischen Compiler- und Interpretersprachen unterscheiden, sondern nur zwischen "Programmiersprachen" (echte Binaries) und Skriptsprachen. Wobei das vielleicht auch zu kurz gefaßt ist.
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Do 14.10.04 13:40
Ich glaube, mann sollte die Programmiersprachen eher einteilen, nach der Laufzeit-Umgebung, womit diese Einteilung eigentlich relativ gut hin haut:
Compiler-Sprachen (ASM, Delphi, C++)
JIT-Sprachen (JAVA, PHP, Perl, VB)
Scriptsprachen (JavaScript, VBScript [WSH  ], das schöne alte QBasic, ...)
Markup Sprachen (HMTL, XML, SGML, ...)
Zumutungen: .NET 
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
adler 
      
Beiträge: 511
Windows XP
Delphi 05 Pers
|
Verfasst: Do 14.10.04 16:50
Passt mal auf, ich habe das so erklärt bekommen, und der hat Ahnung:
Copiliert wird jede Sprache.
Denn Compilieren ist einfach nur der Syntax-Check der Sprache.
Dann wird ge-Linkt oder Interpretiert.
Also Maschinencode erzeugen = Linken.
Und weil VB interpretiert wird, bin ich umgestiegen 
_________________ Wo's nix zu gucken gibt, gibts vielleicht was zu hören.
|
|
Spieler1
      
Beiträge: 469
D6 Pers
|
Verfasst: Do 14.10.04 16:56
adler hat folgendes geschrieben: | Passt mal auf, ich habe das so erklärt bekommen, und der hat Ahnung:
Copiliert wird jede Sprache.
Denn Compilieren ist einfach nur der Syntax-Check der Sprache. |
Parsen ist AFAIK der "Syntax-Check". Warum hat derjenige Ahnung?
adler hat folgendes geschrieben: | Und weil VB interpretiert wird, bin ich umgestiegen  |
War es dir zu langsam, oder hast du gründsätzlich was gegen Interpreter-Sprachen?
|
|
Gast
Gast
Erhaltene Danke: 1
|
Verfasst: Do 14.10.04 16:58
adler hat folgendes geschrieben: | Und weil VB interpretiert wird, bin ich umgestiegen  |
Da gibt's 2 Modi. P-Code und Native. Der erste ist glaub ich die interpretierte Variante.
Aber alles in allem gilt der Spruch:
It is practically impossible to teach good programming style to students that have had prior exposure
to BASIC; as potential programmers they are mentally mutilated beyond hope of regeneration.
Der heute wie damals nicht witzig sondern ernst gemeint ist.
|
|
adler 
      
Beiträge: 511
Windows XP
Delphi 05 Pers
|
Verfasst: Do 14.10.04 17:09
War ganz einfach zu langsam für 3D 
_________________ Wo's nix zu gucken gibt, gibts vielleicht was zu hören.
|
|
Spieler1
      
Beiträge: 469
D6 Pers
|
Verfasst: Do 14.10.04 17:56
Assarbad hat folgendes geschrieben: | Aber alles in allem gilt der Spruch:
It is practically impossible to teach good programming style to students that have had prior exposure
to BASIC; as potential programmers they are mentally mutilated beyond hope of regeneration.
Der heute wie damals nicht witzig sondern ernst gemeint ist. |
adler hat folgendes geschrieben: | War ganz einfach zu langsam für 3D  |
Und was sagst du zu dem Spruch?
Ich hab (zum Glück?  ) nicht mit Basic angefangen und auch nie richtig Basic programmiert, desewegen kann ich das nicht beurteilen. (Ach ja, und ich bin auch kein Professor  ).
|
|