Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 02.10.2014
Сообщений: 17
1

Написание компилятора на C++

02.10.2014, 16:10. Просмотров 2244. Ответов 6
Метки нет (Все метки)

Хочу написать компилятор на С++ под свой язык. Ни в одной книге не описывается, как создать exeшник без TASM,MASM,WASM, только анализаторы, генератор кода преобразует код в команды ассемблера, а дальше что делать не понятно. Посоветуйте книгу или интернет-ресурс по созданию компилятора от начала до конца, чтобы написал исходник , а получил exeшник.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.10.2014, 16:10
Ответы с готовыми решениями:

Написание компилятора для С++ программ в блокноте
Приветствую. Такой вопрос, можно ли написать bat файл который являлся бы компилятором для...

Написание простого компилятора
Хотел бы попробовать написать простенький компилятор, но не знаю с чего начать, помогите ссылкой на...

Написание простого компилятора
Пишу простой компилятор использующего грамматику Pascal Реализую проверки строк кода на ошибки,...

Написание компилятора на паскале
Помогите написать компилятор на паскале. Для проверки одной строчки паскаля. на примере: var...

6
87 / 68 / 19
Регистрация: 07.03.2011
Сообщений: 169
02.10.2014, 16:47 2
Вам в любом случае потребуется ассемблер - встроенный в компилятор или отдельный - неважно. Потому что именно он превращает ассемблерный листинг в исполняемый файл. А эта задача гораздо сложнее.
0
3169 / 1928 / 313
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
02.10.2014, 20:13 3
Лучший ответ Сообщение было отмечено Убежденный как решение

Решение

Кодогенерация - и дальше по ссылкам. Начальное представление можно получить здесь: Компиляторы: принципы, методы и средства разработки
0
Jesus loves me
Эксперт С++
5110 / 3122 / 353
Регистрация: 12.12.2009
Сообщений: 7,899
Записей в блоге: 2
02.10.2014, 20:50 4
Думаю ТС имел ввиду упаковку кода в исполняемый файл (PE, elf, etc). Никогда не занимался этим, но я бы начал с изучения целевого формата файла и гугления на тему есть ли готовые open source упаковщики.
0
Evg
Эксперт CАвтор FAQ
21139 / 8155 / 628
Регистрация: 30.03.2009
Сообщений: 22,465
Записей в блоге: 30
02.10.2014, 21:07 5
Цитата Сообщение от DenProg Посмотреть сообщение
а дальше что делать не понятно
Дальше писать программу-ассемблер. Можно даже в качестве примера скачать binutils, в состав которого входит ассемблер gas. Если работаешь под линуксом, то это дефолтный ассемблер, если под виндой, то он входит в состав всяких компиляторных сборок, основанных на gcc (Min-GW, dev-cpp, может что-то ещё есть). Но опять-таки, если стоит цель понимать, как полученный бинарник дальше работает, то надо бы изучить как работает операционная система и загрузчик приложений
0
Ушел с форума
Эксперт С++
16407 / 7382 / 1184
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
02.10.2014, 21:07 6
На всякий случай, ибо ссылка так и просится:

Microsoft PE and COFF Specification (Updated: February 6, 2013)
http://msdn.microsoft.com/en-u... 63119.aspx
0
Evg
Эксперт CАвтор FAQ
21139 / 8155 / 628
Регистрация: 30.03.2009
Сообщений: 22,465
Записей в блоге: 30
02.10.2014, 21:13 7
А потом ещё и линковщик

Добавлено через 36 секунд
На всякий случай
Процесс компиляции

Добавлено через 3 минуты
Цитата Сообщение от DenProg Посмотреть сообщение
Хочу написать компилятор на С++ под свой язык
Один из стандартных подходов - написать конвертор с твоего языка в Си, а затем полученный текст на Си скормить стандартному компилятору. Если ты хотя бы до такого состояния доведёшь свой проект, то уже можно будет задумываться о реализации полной технологической цепочки. Если не доведёшь - то и фиг с ним, не придётся тратить время на получение знаний, которые потом уйдёт в помойку
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.10.2014, 21:13

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Написание собственной ОС, Антивируса и компилятора
Привет всем. решили с друзьями изучить C и написать собственную ОС(на подобии KolibriOS на асме),...

На каком языке объясняется написание компилятора в книге?
Скачал книгу Дракона, Читал пока не пришел к вопросу, НА КАКОМ ЯЗЫКЕ ОБЪЯСНЯЕТСЯ НАПИСАНИЕ...

Ошибка компилятора fatal error C1091: ограничение компилятора: длина строки превышает 65535 байт
Компилируя программу вот такой командой: cl /O2 /Oi /GL /EHsc /MD /Gy main.cpp И компилятор...

Посоветуйте литературу по написание основам написание плагинов
пишу курсовую на тему, основы написание плагинов. Посоветуйте литературу.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.