Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Kompilator w programie napisanym w c++

Ostatnio zmodyfikowano 2017-08-25 00:48
Autor Wiadomość
Nazgul
Temat założony przez niniejszego użytkownika
Kompilator w programie napisanym w c++
» 2017-08-22 23:25:18
Dzien dobry,
Chcialbym wstawic kompilator dowolnego jezyka do swojego programu.

C/C++
unsigned char * compile( std::string );
...
int( * foo )();

foo =(( int * )() ) compile( "int main(){return 997;}" );

std::cout << foo(); // standardowe wyjscie: 997

Potrzebuje tego w kreatorze do gry zeby np. Bezposrednio w kreatorze oprogramowac platformę, zeby raz przemieszczala sie w jedna strone, raz w druga

Bede bardzo wdzieczny za pomoc w odnalezieniu w miare prostego sposobu na to. Byc moze ktos slyszal o konkretnej bibliotece, albo o wbudowanej funkcji (cos slyszalem, ze w gcc jest funkcja do generowania kodu maszynowego z assemblera _asm_(char*), tyle ze nie wiem czy to bardziej w formie wbudowanej funkcji, czy bardziej makra)
P-164215
Kinexity
» 2017-08-22 23:42:34
Poszukaj jakiegoś kompilatora Open source, ale tutaj pozwolę sobie dodać coś od siebie - jeżeli miałbym sam coś takiego zrobić to prędzej stworzył bym interpretator. A jeżeli chodzi o assembler, to z tego co mi wiadomo, to jest on tłumaczony na kod maszynowy w trakcie kompilacji.
P-164217
Nazgul
Temat założony przez niniejszego użytkownika
» 2017-08-22 23:54:04
Tak, juz sie bawilem w pisanie parsera do tego, jednak ma kilka wad.
Nie jest to przede wszystkim zoptymalizowane;P

A znasz moze jakis kompilator opensource, szczerze mowiac juz w ten sposob szukalem i nie moge znalezc
P-164219
Kinexity
» 2017-08-23 00:09:25
Gcc jest chyba Open source. Na jego stronie jest chyba podane jak dostać się do kodu tylko do odczytu.
A tak wgl to raczej nie ma czegoś takiego jak biblioteki służące do kompilacji - jak tworzysz kompilator, to od podstaw, ponieważ skoro już to robisz, to znaczy, że masz bardzo dużo wiedzę o tym jak co działa i wiele rzeczy wolisz dla pewności zrobić samemu.
P-164220
Elaine
» 2017-08-23 00:20:43
A tak wgl to raczej nie ma czegoś takiego jak biblioteki służące do kompilacji
https://llvm.org/
P-164221
Kinexity
» 2017-08-23 00:34:21
Poddaję się - nie wiedziałem o tym.
P-164222
Nazgul
Temat założony przez niniejszego użytkownika
» 2017-08-23 00:56:01
Mmm jedyne co mi teraz przychodzi do glowy, to pisanie w kreatorze oprogramowania dla ruszajacej sie platformy w asmie, zapisanie tego do pliku txt, wywolanie asemblera nasm z parametrem, zeby zasemblowalo mi to do pliku bin, wczytanie tej binarki do tablicy char* i konwersja wskaznika tej tablicy do wskaznika funkcji...

Ymm niezbyt eleganckie rozwiazanie ale musi wystarczyc:D zna ktos podobne rozwiazanie dla ciut bardziej abstrakcyjnego jezyka? Czy w ogole ten pomysl co podalem moze zadzialac?
P-164223
Kinexity
» 2017-08-23 01:01:39
Teoretycznie tak (sam na to wpadłem równolegle parę minut temu), ale nie wiem, czy system od tak na to pozwoli...
P-164224
« 1 » 2
  Strona 1 z 2 Następna strona