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. unsigned char * compile( std::string ); ... int( * foo )();
foo =(( int * )() ) compile( "int main(){return 997;}" );
std::cout << foo();
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) |
|
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. |
|
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 |
|
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. |
|
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/ |
|
Kinexity |
» 2017-08-23 00:34:21 Poddaję się - nie wiedziałem o tym. |
|
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? |
|
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... |
|
« 1 » 2 |