0 / 0 / 0
Регистрация: 07.03.2013
Сообщений: 6
|
||||||
1 | ||||||
Компиляция заданного кода в exe через программу07.03.2013, 12:43. Показов 5166. Ответов 16
Метки нет (Все метки)
Хочу узнать поподробнее, как реализовать компиляцию некого заданного кода в exe для windows через самописную программу. Ведь как-то писали компиляторы для других ЯП-ов.
Например, есть код (предположим, паскалеподобный):
Мне важен сам принцип создания exe через программу.
0
|
07.03.2013, 12:43 | |
Ответы с готовыми решениями:
16
Загрузка исходного кода и компиляция *.exe Компиляция библиотеки через make.exe Компиляция C++ кода через консоль Создание exe (компиляция) через программу |
0 / 0 / 0
Регистрация: 07.03.2013
Сообщений: 6
|
|
07.03.2013, 12:48 [ТС] | 3 |
Тем, что для работы нужен интерпретатор. А так - всё компилиуется и запускается где угодно.
Спрашиваю больше для самообразования, но и попытаться реализовать тоже интересно.
0
|
07.03.2013, 12:55 | 4 |
А какая разница?
а так для работы нужен компилятор. иначе смысл преобразовывать какой-то текст программы, если можно на своём компе её на си написать и вручить кому хочешь уже экзешник.
0
|
0 / 0 / 0
Регистрация: 07.03.2013
Сообщений: 6
|
|
07.03.2013, 12:59 [ТС] | 5 |
Я же говорю, мне просто интересно, как это реализовать. Если не знаешь, можешь не писать.
0
|
07.03.2013, 13:09 | 6 |
Ясно. Тогда иди читай Dragon Book
http://www.amazon.com/dp/03214... verfl08-20 А в форумном сообщении про написание компиляторов тебе много не расскажут.
1
|
0 / 0 / 0
Регистрация: 07.03.2013
Сообщений: 6
|
|
07.03.2013, 14:12 [ТС] | 7 |
Интересно. Найду ещё что-нибудь в инете. Спасибо.
0
|
Антикодер
1804 / 869 / 48
Регистрация: 15.09.2012
Сообщений: 3,081
|
|
07.03.2013, 14:20 | 9 |
я не эксперт по компиляторам, но думаю вам этот код
Код
begin print'HELLO!' exit но begin - exit лучше заменить на {} ведь они короче или на /* */ тогда комментарии в C++ можно интерпретировать как программу( я не говорю, что так нужно сделать, но может на этой идее у вас появится более продвинутая идея) после перекодирования в ассемблер стоит использовать готовый компилятор для ассемблера. ещё нужно изучить регулярные выражения, без них очень сложно будет понять, как разобрать строку на операторы, переменные и прочее
0
|
0 / 0 / 0
Регистрация: 07.03.2013
Сообщений: 6
|
|
07.03.2013, 14:22 [ТС] | 10 |
Croessmah, я не понял тебя, что ты сказал? В смысле транслировать в компилятор ассемблера?
Добавлено через 57 секунд Мне нужен свой компилятор, а не компилятор ассемблера.
0
|
Антикодер
1804 / 869 / 48
Регистрация: 15.09.2012
Сообщений: 3,081
|
||||||
07.03.2013, 14:34 | 11 | |||||
Вам нужно почитать основы о том как работает процессор. Если вы хотите сразу транслировать в машинный код никто не мешает. Но ассемблерные команды позволяют работать с машинным кодом более просто.
после компиляции у вас будет бинарный файл, который можно легко транслировать в ассемблер. то есть ассемблер предназначен для того чтобы генерировать такие бинарные файлы более простым способом. То есть алгоритм такой читаем строку 1 - пусто читаем строку 2 - begin проверяем есть ли в строке ключевые слова вашего языка
0
|
127 / 131 / 11
Регистрация: 25.12.2011
Сообщений: 443
|
|
07.03.2013, 14:39 | 12 |
Можно компилировать в байткод под .NET, должно быть куда проще и готовых инструментов под это больше. На выходе будет готовый exe-файл.
0
|
Антикодер
1804 / 869 / 48
Регистрация: 15.09.2012
Сообщений: 3,081
|
|
07.03.2013, 15:00 | 13 |
если у вас возникают такие вопросы то начинать нужно с Литература C++ раздел "Основы программирования и синтаксис языка"
там представлены достойные книги, которые быстро приведут вас к цели ну и посмотрите советы по книгам в разделе форума про ассемблер. (у каждого типа процессора свой ассемблер) Добавлено через 9 минут ну и по традиции дам ссылки на вики Машинный код Ассемблер_(язык_программирования) Компилятор цитата из последней ссылки(раз уж вы никому не верите) Добавлено через 7 минут вот ещё полезная цитата Не по теме:
0
|
213 / 137 / 8
Регистрация: 18.08.2010
Сообщений: 1,018
|
||||||
07.03.2013, 15:05 | 14 | |||||
Кстати да. Если для вас сам язык не принципиален, а нужно лишь получать из кода(любого языка программирвоания) говотовый exe-файл, тогда посмотрите в сторону .NET-языков, например C#. Там есть встроенные средства для компиляции исходного кода программы. Вот пример:
0
|
XRuZzz
|
07.03.2013, 15:22
#15
|
0
|
Неэпический
|
|
07.03.2013, 15:47 | 17 |
ТС вообще хочет что-то вроде своего языка, поэтому полюбому придется учить.
Первым делом разработайте сам язык. Потом пишите синтаксичаский анализатор, далее по нарастающей.
0
|
07.03.2013, 15:47 | |
07.03.2013, 15:47 | |
Помогаю со студенческими работами здесь
17
Компиляция exe из кода Компиляция C# кода в .exe Error 1001 или Компиляция кода в .exe приложение Компиляция java в exe через консоль linux Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |