Hogyan valósítják meg szoftverekben (pl. Game Maker), hogy egy külön programozási nyelvet használ a program (GML)?
"és nem "valódi" programozási nyelv,"
Rosszul látod. Nincs olyan, hogy valódi meg nem valódi nyelv.
Egy programozási nyelv akkor is valódi, ha a saját nyelvről mondjuk egy másik nyelv forrására "fordít". A C nyelv is asm forrást generál és hát, vannak interpretált nyelvek is, amelyek megvalósítása nem igényel túl sok energiabefektetést.
"A legtöbb C fordító rögtön gépi kódra fordít, nem asm-re."
A g++ néhány hasznos kapcsolója:
-o fáljnév kimeneti állomány nevének a megadása
-c Fordítás szerkesztés nélkül, tárgykódot (object) fájlt készít
-S Assembly nyelvű kódot készít a forrás állományból
Amire neked szükséged van, az két tantárgy anyaga:
1) Automaták és formális nyelvek:
2) Fordítóprogramok:
Ha nagyon egyszerűek akarunk lenni, akkor minden egyes nyelvnek van egy ábécéje illetve nyelvtana. Ha azt mondom, hogy az L nyelv ábécéje legyen az "a" és a "b" betűk, valamint a nyelvtana:
S -> A | B | SS
A -> a
B -> b
valamint a startszimbólum legyen az S (magyarul, mindig az S szimbólumból indulunk ki), akkor ebből ilyen mondatformák születhetnek:
a (S->A, A->a)
b (S->B, B->b)
ab (S->SS, S->A, A->a, S->B, B->b)
ba (S->SS, S->B, B->b, S->A, A->a)
aaaa
aaab
és így tovább. Az első tantárgy, amit linkeltem, az ilyen formális nyelvek lelki világával foglalkozik.
A programozási nyelvek is ugyanígy működnek, ilyen szigorú nyelvtan alapján. Csak az természetesen némileg bonyolultabb. A nagy kérdés az az volna, hogy ha adva van nekem egy olyan mondatforma, hogy
aaab
akkor ebből hogyan tudom visszanyerni azt, hogy ez milyen nyelvtani szabályok alkalmazásával jött létre. Ugyanis ezt csakis akkor fogom tudni lefordítani egy másik nyelvtant használva, ha ismerem az alkalmazott szabályokat. Erre vannak különféle módszerek, pl. alulról felfelé elemzés, fentről lefelé elemzés, stb., amit bővebben szintén megtalálsz az általam linkelt második tantárgy tananyagai közt.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!