Announcement

Collapse
No announcement yet.

wieso: pascal-source mit cpp compilieren???

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • wieso: pascal-source mit cpp compilieren???

    ich komme aus der delphi-welt, will aber in zukunft auch etwas mit dem cpp-builder machen.
    neulich habe ich zu einem cpp-projekt mit "zu projekt hinzufügen" eine delphi-quelltextunit
    hinzugefügt und übersetzt. dies ging ohne probleme.
    WISO kann ein cpp-compiler pascal-code übersetzen? sind es zwei compiler? wie ist das mit
    der vcl geregelt die ist ja auch in object pascal geschrieben. gibt es da vielleicht zwischenklassen
    die nur für die umwandlung da sind, oder kann der compiler tatsächlich zwei sprachen
    erkennen oder sind es zwei compiler.
    für eine genaue antwort wie dies geht wäre ich sehr dankbar.
    ake

  • #2
    Hallo ake

    Vielleicht hast du schon mal was von lex & yac gehört. lex steht für lexikale Analyse und jac steht für yet another compiler. Zuerst wird die erste Zeile im Code lexikal analysiert und dabei festgestellt ob es sich um eine Pascal-Unit oder um eine cpp handelt. Aufgrund dieser Information wird der Source dann auf die eine, oder auf die andere Weise compiliert. Alles keine Hexerei, aber dennoch eine Wahnsinnsleistung, da bin ich deiner Meinung :-)

    Gruß Roma

    Comment


    • #3
      hallo roman,

      wie ist das geregelt? in delphi kann ich mit sicherheit keinen cpp-code übersetzen. sind das beim builder zwei compiler, oder einer der beide sprachen kann? oder werden die delphi-units in für cpp verständliche obj.-files übersetzt?
      trotzdem danke
      ak

      Comment


      • #4
        Richtig erfasst Ake,

        Es handelt sich beim CBuilder um zwei Compiler, zwei Preprozessoren, zwei Resourcecompiler, naemlich jeweils fuer C++ und Pascal.

        So gibt es zum Beispiel eine DCC.exe und eine BCC.exe (Delphi und C++).

        Die Object files sind einheitlich fuer Delphi und C++.

        Chri

        Comment

        Working...
        X