Hallo raik,
Aber mit regulären Ausdrücken kannst Du nicht programmieren - es gibt keine Bedingungen, keine Schleifen - nichts.
jemandem, der kein assembler kann, zu erklären, wie eine regexp-engine arbeitet, das würde lange dauern.
Will ich (im Moment) auch gar nicht wissen.
([^A]\w+) es wird eine buchstaben(\w)folge(+) gesucht, die (Bedingung:) kein(^) grosses A enthält.
Naja, nicht wirklich. ([^A]\w+) matched auf eine Zeichenfolge, die mit einem Zeichen, das nicht 'A' ist beginnt und dann von mindestens einem Buchstaben gefolgt wird. Was das mit einer klassischen if-Bedingung zu tun haben soll, verstehe ich aber immer nicht. Natürlich hat das ganze eine gewisse Ähnlichkeit, aber eine Äquivalenz sehe ich nicht.
ich habe nicht behauptet, das reguläre ausdrücke eine programiersprache sind, sondern das sie vor der ausführung compiliert werden.
Ähm, Du widersprichst Dir selbst. Du hast doch selbst gesagt, Programmiersprachen seien Sprachen, die man kompilieren kann, oder? Oder meinst Du nur solche, die nicht ohne gesondertes Programm ausgeführt werden können? Dann dürftest Du so ziemlich jede Sprache außer Assembler (und vielleicht Brainfuck auf spezieller Hardware ;-)) als nicht-Programmiersprache disqualifizieren.
wie gut kennst du dich mit regexp aus?
Sehr gut eigentlich. Zumindest was die Verwendung und Syntax angeht.
es gibt einen unterschied zwischen einem rezept und einer bauanleitung für eine maschine.
konzept des rezeptes ist es, die ausgangsmaterialien (entspricht den variablen in javascript) an die beschriebenen maschinen (mixer, fleischwolf, reibe) zu übergeben und so zu einem ergebnis zu kommen.
natürlich kann man auch eine maschine bauen, die die einzelnen maschinen beinhaltet oder zumindest ansteuert, und das ergebnis (fertiges essen) dieses einen rezeptes erzeugt.
aber wärend das rezept eine anleitung zur nutzung vorhandener maschinen ist, ist die bauanleitung der weg zu einer eben dieser maschinen.
Bis jetzt habe ich Deinen Vergleich nicht verstanden.
ohne eine schnittstelle nach aussen, die die variable eingabe neuer daten ermöglicht, würde dein compiliertes javascript immer den selben sch** machen.
JavaScript hat doch eine Schnittstelle nach außen.
damit es interaktiv wird, muss eine dateneingabe möglich sein und für diese muss ein format festgelegt werden, in dem diese erfolgt, damit das programm sie verarbeiten kann.
Ja.
eine spezifikation der übergabeformate für daten an ein programm, den javascript-interpreter des browsers.
Ja, auch. Ich bestreite ja nicht, dass JavaScript-Code *auch* unter den Begriff "Daten", allerdings ist JavaScript-Code auch Anweisnug.
Nein. Eben nicht. Ich lasse die Objektdateien vom Mozilla, die die Funktionen enthalten, so, wie sie sind.
gut, damit erzeugst du ein programm, das als hilfsprogramm den mozilla braucht.
Ja, mehr oder weniger. Ich würde es natürlich in den Mozilla-Code mit einkompilieren, damit ein ausführbares Programm entsteht.
ohne dessen bibliotheken ist es nicht ausführbar.
Ein CD-Brenn-Programm ist ohne die Kernel-Schnittstelle, ohne die Systembibliotheken und ohne die C-Standardbibliothek auch nicht ausführbar.
Noch etwas: Ist Visual Basic eine Programmiersprache nach Deiner Definition?
der code von vb-programmen wird direkt vom prozessor ausgeführt.
Wenn Du in VB (zumindest bis einschl. Version 3, darüber kenne ich es nicht) auf den "Play"-Knopf drückst, dann wird der Code interpretiert und nicht kompiliert. Wenn Du dagegen im Dateimenü auf "Create EXE File" (oder so ähnlich) machst, dann wird der Code erst kompiliert. Ich wiederhole meine Frage: Ist VB nun eine Programmiersprache oder nicht?
Viele Grüße,
Christian