Другие языки программирования и технологии

Как создать компилятор на C# ? Подкиньте статью или видео по этому вопросу, (желательно русское)

Сергей Мотин
Сергей Мотин
1 024
HEX редактор в помощь.
Пишем код, компилируем каким-то имеющимся компилятором, смотрим ехе в hex-редакторе.
Меняем что-то в коде, снова компилируем, снова exe смотрим. Ищем закономерности, связи между именами функций-классов-переменных-..,используемых в коде, и байтами. Узнаем, какие последовательности байтов соответствуют какому коду.
И делаем так десятки, сотни, тысячи раз с самыми разными кодами.
Автоматизируем процесс с помощью C# (используя побайтовую запись файлов) и получаем не просто компилятор, а компилятор-линковщик.
Аналогичным способом можно писать библиотеки для чтения и записи ЛЮБОГО иного бинарного формата, будь то xls, avi или apk.

> статью или видео по этому вопросу, (желательно русское)
Русские много компиляторов написали?

Вообще компиляторов написано немало. Есть даже бесплатные, код которых авторам было не жалко выложить в инет. Но написать что-то реально стоящее по теме разработки компиляторов - это колоссальный труд, а пригодится это мало кому, поэтому сделают такое только на заказ и за большие деньги. И способны на это всего несколько человек на свете. Ну типа Хейлсберга.

P.S. А почему сразу компилятор?
Почему не интерпретатор и не транслятор с 1 языка на другой, для компиляции уже имеющимся компилятором? Это на порядок легче.
Жека Белый
Жека Белый
15 749
Лучший ответ
Сергей Мотин Нужно дабы прога могла делать остатки (типа svk файлов в вегасе) но больше. И прога могла читать эти файлы. Писать в xml или обычный txt тупо. Надобно закодировать и раскодировать. Но не обычный шифровщик. Трудно объяснить точно,
но думаю суть понятна.
ищите создание псевдоязыков
Что-то у меня есть серьезные сомнения, что человек, способный написать компилятор (любого языка) , будет здесь просить помощи в нахождении материалов на тему.
Посмотри код IronPython
Сергей (*_*)
Сергей (*_*)
24 293
статьи мало - книжка нужна. Хотя бы эта:

Ахо, Сети, Ульман "Компиляторы. Принципы, технологии, инструменты"
Антон Симонов
Антон Симонов
11 509