Jak przekonwertować string do kodu programu?

0

Czesc, mam pytanie. Czy da sie "przekonwertowac" string do kodu programu?

0

opisz troche szerzej bo jedynie domyslac sie mozna ze chcesz wywolac funkcje ktorej nazwe przekazujesz jako string, ale to wciaz domysly :D

0

@nie_wiem - kod programu to nic innego jak String, więc nic nie musisz konwertować;

A tak całkiem serio - opisz problem dokładniej, bo nie podałeś praktycznie żadnych sensownych informacji; Nie wiadomo w ogóle co chcesz osiągnąć, co rozumiesz pod pojęciem "konwersja stringa do kodu programu" i co w ogóle chcesz osiągnąć; Napisz więc konkretnie co masz i co chcesz uzyskać.

0

ja myślę że tu chodzi o coś typu

string kod_programu = "Console.WriteLine(\"foo\");";

takie coś chyba Microsoft ma dopiero w planach.

EDIT: tu jest coś na zbliżony temat:
http://support.microsoft.com/kb/304655

0

Już tłumacze. Czytam z pliku do stringui

2

I teraz wszystko jest jasne, prawie.

0

sry mam takom badziewnom klawiaturke :). Chodzi o to że czytam z pliku i otrzymuje string, i chce żeby po skompilowaniu działał jak normalny kod.

0

Znaczy sie chcesz napisać kompilator? Jasne że sie da. Polecam zacząc od: http://en.wikipedia.org/wiki/Compilers:_Principles,_Techniques,_and_Tools#Second_edition

0

A moglbys mi to jakos szybko wytłumaczyc? Był bym bardzo wdzieczny :)

Jeszcze jedno. To co napisał kolega @Azarien może sie przydac?

0

Tego nie da się szybko wytłumaczyć - kup odpowiednią książkę i poczytaj.

0

A moglbys mi to jakos szybko wytłumaczyc? Był bym bardzo wdzieczny

Nie. Na moich studiach były 3 semestry na ten temat (Teoria Automatów i Języków Formalnych + Teoria Kompilacji x 2) i to i tak były tylko podstawy ;]

Ale tak zupełnie poważnie: proponuje po prostu użyć kompilatora C#, tzn wywołać go przez jakieś exec() ;]

0

No to dałoby sie od razu skompilowac tego stringa w kodzie, żeby potem można go było używac jako np metoda?

0

Nie, tak łatwo to nie ma. To by było bardzo skomplikowane co chcesz zrobić. Juz chyba łatwiej byłoby napisać jakiś prosty interpreter jeśli ten string to jest tylko jakiś mały subset języka...

0

A poleciłbyś mi jakąś dobrą polską książke na ten temat?

1

Na temat Teorii Kompilacji? Lepszej niż podany wyżej Dragon Book raczej nie znajdziesz. Możesz też popatrzeć tutaj: http://kompilatory.agh.edu.pl/

0

Powiedz co chcesz zrobić może.

0
nie_wiem napisał(a):

No to dałoby sie od razu skompilowac tego stringa w kodzie, żeby potem można go było używac jako np metoda?

Dałoby się, trzeba użyć klasy CSharpCodeProvider. Przykład tutaj: System refleksji i wywołanie fragmentu kodu
Pisanie kompilatora do C# to raczej fanaberia, skoro już taki kompilator istnieje.

1

strasznie pieprzą panowie powyżej
oczywiście że trzeba użyć CSharpCodeProvider
tutaj masz przykład http://www.codeproject.com/Tips/715891/Compiling-Csharp-Code-at-Runtime

ogarnięcie tematu to kilkanaście minut
niektórym chyba szkoda że stracili 3 semestry na naukę czegoś i próbują teraz to gdzieś na siłę wykorzystać i najprostszą rzecz zaczynają od napisania kompilatora ;)

0

Zauważ, że autor ani słowem nie wspomniał o tym, w jakim języku ma ten kod do skompilowania - równie dobrze może to być C++ czy jakiś jego wymyślony język, a wtedy raczej CSharpCodeProvider się sprawdzi

instynkt i logika mi podpowiadają że chodzi o język C#
jeśli byłby to inny język to też raczej należałoby użyć istniejącego kompilatora lub parsera bo napisanie własnego, poprawnie działającego kompilatora istniejącego języka rozwijanego przez naście lat raczej byłoby nieopłacalne w każdym przypadku
raczej nie jest to też "jakiś jego wymyślony język" bo nie zaczyna się tworzenia nowego języka programowania od jego kompilacji

1 użytkowników online, w tym zalogowanych: 0, gości: 1