Autor Beitrag
adler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 511

Windows XP
Delphi 05 Pers
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2453

Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
BeitragVerfasst: 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



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: 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? :gruebel:

_________________
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



BeitragVerfasst: So 10.10.04 16:33 
Nein, manche lassen den Zwischenschritt weg - quasi eingebauter "Assembler".
obbschtkuche
Gast
Erhaltene Danke: 1



BeitragVerfasst: 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



BeitragVerfasst: 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!!! :beer: geiles Projekt. Schau ich mir morgen gleich mal genauer an.
MrSaint
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1033
Erhaltene Danke: 1

WinXP Pro SP2
Delphi 6 Prof.
BeitragVerfasst: 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 :D


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



BeitragVerfasst: 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 :mrgreen:

Ich finde nur deine Aussage etwas zu allgemein
MrSaint
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1033
Erhaltene Danke: 1

WinXP Pro SP2
Delphi 6 Prof.
BeitragVerfasst: Do 14.10.04 11:33 
Assarbad hat folgendes geschrieben:
In welche Schublade steckst du denn dann Perl und Java? Nur mal so nebenbei :mrgreen:

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 :roll: 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ß :D

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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2453

Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
BeitragVerfasst: 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. :gruebel:

_________________
JSXGraph
MrSaint
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1033
Erhaltene Danke: 1

WinXP Pro SP2
Delphi 6 Prof.
BeitragVerfasst: 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. :gruebel:


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
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 205

Win 2000, XP, SuSe, Debian
D5 Prof, D7 Prof, Kylix
BeitragVerfasst: 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



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: 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 :D], das schöne alte QBasic, ...)
Markup Sprachen (HMTL, XML, SGML, ...)
Zumutungen: .NET :mrgreen:

_________________
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 511

Windows XP
Delphi 05 Pers
BeitragVerfasst: 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
ontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 469


D6 Pers
BeitragVerfasst: 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



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 511

Windows XP
Delphi 05 Pers
BeitragVerfasst: 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
ontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 469


D6 Pers
BeitragVerfasst: 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 ;) ).