В .NET же входят классы для компиляции C# и VB.NET!
Да и не только классы, и сами компиляторы этих ЯП входят именно в .NET, а не Вижуал Студио.
А следовательно:
1) можно написать компилятор своей реализации C# или VB.NET (под свои библиотеки)
2) можно написать "лжеинтерпретатор" своей реализации C# или VB.NET (то же, что и пункт 1), только компиляция кода происходит скрытно, исполняемый файл также создается скрытно и сразу же запускается.
Получается что-то вроде функции eval() в скриптовых языках.
3) можно придумать свой ЯП, код на котором затем транслировать в код на C# или VB.NET и далее пункт 1 либо 2.
Еще вариант для интерпретаторов - это рефлексия.
С помощью нее можно к текущей сборке (программе) подключить библиотеки и обращаться к ним и к их членам, притом что имена членов будут храниться в строках, а не жестко забиты в код.
Это лазейка для написания интерпретатора под .NET: интерпретатор анализирует код на вашем ЯП и делает вызовы классов, методов, полей и т. д. через рефлексию.
Ну а если хотите принципиально свой компилятор... HEX-редактор вам в помощь. Дальше сами думайте.
--------
Но главное, что нужно при создании серьезного ЯП, компилятора, интерпретатора, IDE - это НЕ уметь написать интерпретатор и компилятор, НЕ уметь работать с рефлексией и грамотно парсить код.
Главное - это определиться, кому, зачем и для каких задач будет нужен ваш продукт и чем будет лучше имеющихся аналогов.
Не нужно пытаться тупо вобрать в свой ЯП все фичи, какие видите в других ЯП, пытаясь сделать его "самым лучшим из всех". Лучшим такой ЯП не будет, хотя бы потому, что многие особенности, которе считаются за преимущества того или иного ЯП, противоречат друг другу и не могут быть объединены в один продукт.
Создавать надо как раз узкоцелевой ЯП, заполняющий пустующую нишу - подходящий для тех задач, для каких пока толком ничего не подходит.
А для этого тщательно изучить имеющиеся аналоги (а не верить слухам, что какая-нибудь Java - это самый Ъ-шный ЯП, работает даже на микроволновке и поэтому больше ничего никому не нужно) и найти эту нишу.
Скажем, до сих пор нет инструмента для разработки и компиляции приложений iOS не имея компа с Mac. Даже айфон не обязателен, а вот Mac - необходим. Нет компилятора приложений iOS под винду и точка. И это отпугивает многих, кто хотел бы писать под айос, но не хочет покупать дорогой макбук.
Всего-то, что от вас требуется - это накопить на макбук и айфон, сделать джелбрейк, изучить формат *.ipa (аналог виндового EXE под айосью) и написать компилятор в него.
Другие языки программирования и технологии
(C#) Как написать свой компилятор или интерпретататор на C#?
Откуда столько самоуверенности? Будьте проще, люди обязательно потянутся. Ещё один вопрос - а зачем плодить сущности, их гордыни? Использование невозможно ввиду лицензионных ограничений.
Но самое главное, в одиночку, даже, ежели будет больше не потянуть большой проект. Что касаемо самой технологии, то здесь проще. В энциклопедии описано из чего состоит компилятор. Вот всё это (синтаксис, семантику, лексику, установление связей и пр.) надо реализовать
Но самое главное, в одиночку, даже, ежели будет больше не потянуть большой проект. Что касаемо самой технологии, то здесь проще. В энциклопедии описано из чего состоит компилятор. Вот всё это (синтаксис, семантику, лексику, установление связей и пр.) надо реализовать
Берешь любую книжку по написанию компиляторов и изучаешь.
Пример написания очень примитивного компилятора -
http://habrahabr.ru/post/133780/
Пример написания очень примитивного компилятора -
http://habrahabr.ru/post/133780/
Точно так же, как и на любом другом языке: синтаксический анализатор - лексический анализатор - семантический анализатор - возможно, оптимизатор - генератор кода. И да, у людей, задающих такие вопросы, в течении ближайшего года НИКОГДА не получается написать компилятор. То ли проклятие такое, то ли у людей, имеющих хотя бы самого общего представления о компиляторах, не возникает таких вопросов...
---
Т. е. ты даже не попытался в гугле искать? Забудь, у тебя не выйдет.
---
Т. е. ты даже не попытался в гугле искать? Забудь, у тебя не выйдет.
сначла строишь дерево, потом ходишь по ветвям
Нанять хорошую команду программеров и дать им задание.
Похожие вопросы
- pascal и c++. Как сильно и чем паскаль отличается от C++? Какой компилятор самый удобный для C++?
- Как написать функцию 1+4=5 в C\с++
- C++ Везде написано, что sizeof() с массивом в качестве аргумента возвращает полный размер. А в данной функции не так.
- Помогите написать на ассемблере програму для вычисления виражения y=(c-(d/2)+33 )/(2*a*a-1). c=5,d=6,a=3.
- помогите!!! вопрос по C++ нужно написать программку "заполните массив так, чтобы все его элементы были различны.
- определение объема жесткого диска на C++. просьба написать кусок кода. функцию
- Как удалить нулевые элементы из массива C++. Помогите написать код для того чтобы из массива удалить все нулевые элементы
- C++ Помогите написать программу, которая выводит первые n простых чисел.
- пожалуйста, напишите мне программу этого вопроса в C ++.пожалуйста помогите. Создать динамический массив из N чисел.
- C++ Помогите написать программу