Комментарии 19
Навеяло :) Правда из немного другой темы
var writeLine = typeof(Console).GetMethod("WriteLine", new[] { typeof(object) });
var proc = Expression.Lambda<Action>(Expression.Call(writeLine, Expression.Constant("Hello, imp"))).Compile();
proc();
+2
С приходом .NET 4 вообще можно даже компильнуть такое дело и получить не лямбду, а MethodBody =)
Expression очень красиво и практично инкапсулирует методы рефлексии для кодогенерации.
Expression очень красиво и практично инкапсулирует методы рефлексии для кодогенерации.
0
Мне кажется это немного «неполноценный» компилятор, но для начала очень неплохо… (если развить идею то получился бы весьма симпатичный велосипед)
0
А что-нибудь подобное но для винды есть?)
0
Ссылочку можно? :)
Я не очень сведущь в теме .NET и всем что с неим связано, просто поэкспериментировать хочется))
Я не очень сведущь в теме .NET и всем что с неим связано, просто поэкспериментировать хочется))
0
Пожалуйста: spark.ms/files/SuperGreeter.zip
0
Черт, не туда коммент, это ответ на habrahabr.ru/blogs/net/109167/#comment_3463731
0
Ну, это и вовсе не компилятор в классическом понимании сего термина — ни тебе лексического анализатора, ни синтаксического, ни построения дерева. Это просто создание исполняемого файла, что не есть достаточным признаком компилятора.
А вообще после второго-третьего своего на коленке написаного «языка» приходит понимание, что не фиг изобретать велосипед, поскольку те же Pyhon, LUA и прочие прекрасно встраиваются в любое приложение за очень короткое время.
А вообще после второго-третьего своего на коленке написаного «языка» приходит понимание, что не фиг изобретать велосипед, поскольку те же Pyhon, LUA и прочие прекрасно встраиваются в любое приложение за очень короткое время.
+2
Для .NET есть еще Cobra и Boo…
0
С удовольствием бы почитал статью о том как это делается, интересует в основном python. Не напишите?)
0
До меня уже куча умных людей написали. Ну вот хотя бы magazine.sources.ru/2010/03/add_python/
+1
Кстати, если Вы хотите написать компилятор и понять как он работает, то эта статья очень хорошо подходит для этой цели: habrahabr.ru/blogs/programming/99162/
0
А как насчет CodeDom?
0
Зарегистрируйтесь на Хабре , чтобы оставить комментарий
Mono.Cecil: делаем свой «компилятор»