Kezdőoldal » Számítástechnika » Programozás » Hogyan valósítják meg szoftver...

Hogyan valósítják meg szoftverekben (pl. Game Maker), hogy egy külön programozási nyelvet használ a program (GML)?

Figyelt kérdés
Kíváncsi vagyok, hogy ez "valódi" programozási nyelv, vagy csak egy szövegdobozba írt szöveg, amit valahol átfordít valamilyen programozási nyelvre a program (mondjuk c++-ba)? Ha ez csak az a része, ami a felhasználó felé "látszik", és nem "valódi" programozási nyelv, akkor milyen elv alapján működik?

2017. febr. 11. 20:12
 1/6 anonim ***** válasza:
Úgy, hogy megírják rá a fordítót.
2017. febr. 11. 20:23
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:

"é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.

2017. febr. 11. 20:35
Hasznos számodra ez a válasz?
 3/6 anonim ***** válasza:
A legtöbb C fordító rögtön gépi kódra fordít, nem asm-re.
2017. febr. 11. 21:42
Hasznos számodra ez a válasz?
 4/6 anonim ***** válasza:

"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

2017. febr. 11. 21:50
Hasznos számodra ez a válasz?
 5/6 anonim ***** válasza:

Amire neked szükséged van, az két tantárgy anyaga:

1) Automaták és formális nyelvek:

[link]

2) Fordítóprogramok:

[link]


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.

2017. febr. 11. 22:58
Hasznos számodra ez a válasz?
 6/6 A kérdező kommentje:
Köszönöm a bővebb válaszokat, átnézem, a linkeket!
2017. febr. 11. 23:18

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!