Schneider: C code mit PHP interpretieren

Hallo,

das Thema ist natürlich etwas provokativ gewählt, aber unabhängig von der Sinn- und Nutzlosigkeit ernst gemeint.

Nehmen wir an, ich schreiben ein sehr simples C-Programm (C-Quelltext), dass ausser als "Hallo World" in die Standardausgabe zu schreiben, nichts weiter tut. Diese Aufgabe bekommt PHP womöglich auch noch hin.

Damit keine Mißverständnisse aufkommen: das C-Programm soll nicht kompiliert werden o.ä, es dreht sich rein um den Code, das sprachliche Konstrukt.

Nehmen wir nun an, ich parse diesen (extrem simplen) C-Code (abgespeichert vielleicht in einer .txt-Datei) mit einem eigens angefertigten PHP-Programm - was augenscheinlich natürlich keinen Sinn macht - und simuliere oder besser bilde die im C-Code abgebildete Programmlogik mit PHP nach. Schreibe also "Hallo World" in die Standardausgabe.

Könnte man in diesem Fall von einem C-Interpreter sprechen?

  1. Hi,

    das Thema ist natürlich etwas provokativ gewählt, aber unabhängig von der Sinn- und Nutzlosigkeit ernst gemeint.

    na gut ...

    Nehmen wir an, ich schreiben ein sehr simples C-Programm (C-Quelltext), dass ausser als "Hallo World" in die Standardausgabe zu schreiben, nichts weiter tut. Diese Aufgabe bekommt PHP womöglich auch noch hin.

    Mit Sicherheit. ;-)

    Nehmen wir nun an, ich parse diesen (extrem simplen) C-Code [...] bilde die im C-Code abgebildete Programmlogik mit PHP nach.
    Könnte man in diesem Fall von einem C-Interpreter sprechen?

    Selbstverständlich, eventuell mit eingeschränktem Sprachumfang (auch C-Compiler für µCs unterstützen nicht immer den vollen Sprachumfang). Vorausgesetzt natürlich, er berücksichtigt die grundsätzlichen Spracheigenschaften von C wie feste Datentypen, Geltungsbereich von Variablen, arithmetisch-logische Ausdrücke usw.
    Ich stelle mir die Aufgabe zwar sehr anspruchsvoll vor, aber nicht uninteressant. Von einem akademischen oder spielerischen Standpunkt, versteht sich, denn für die praktische Anwendung würde ich so einen C-Interpreter sicher nicht in PHP schreiben wollen, einer Sprache, die selbst interpretiert wird.

    So long,
     Martin

    --
    Wenn du beim Kochen etwas heißes Wasser übrig hast, friere es ein.
    Heißes Wasser kann man immer gebrauchen.
    1. Hallo,

      Selbstverständlich, eventuell mit eingeschränktem Sprachumfang (auch C-Compiler für µCs unterstützen nicht immer den vollen Sprachumfang). Vorausgesetzt natürlich, er berücksichtigt die grundsätzlichen Spracheigenschaften von C wie feste Datentypen, Geltungsbereich von Variablen, arithmetisch-logische Ausdrücke usw.

      Auf jeden Fall.

      Ich stelle mir die Aufgabe zwar sehr anspruchsvoll vor, aber nicht uninteressant. #

      Oh ja, das dürfte schon ziemlich aufwändig werden.

      Von einem akademischen oder spielerischen Standpunkt, versteht sich, denn für die praktische Anwendung würde ich so einen C-Interpreter sicher nicht in PHP schreiben wollen, einer Sprache, die selbst interpretiert wird.

      Sicher, in der Praxis ist sowas sinnlos.
      Aber ganz grundsätzlich: Eine (Programmier)sprache ist also in erster Linie  das Sprachkonstrukt, nicht das interpretierte Ergebnis?

      1. Hi,

        Aber ganz grundsätzlich: Eine (Programmier)sprache ist also in erster Linie  das Sprachkonstrukt, nicht das interpretierte Ergebnis?

        eine Programmiersprache ist zunächst etwas Abstraktes. Sie ist ein Gefüge aus einem Wortschatz und den dazugehörigen Regeln.

        Das wird zwar gelegentlich auch etwas ungenau aufgefasst: "Ich habe PHP auf meinem Rechner installiert." Das will natürlich korrekt heißen: "Ich habe einen PHP-Interpreter installiert."
        Die Aussage, dass "PHP installiert" sei, ist etwa so unkorrekt wie die Behauptung, ein Auto "hat TÜV" oder ein Buchladen "hat Englisch" - eine sprachliche Schlamperei, die aber durchaus gebräuchlich ist.

        Ciao,
         Martin

        --
        Was du heute kannst besorgen,
        das geht sicher auch noch morgen.