Форум программистов, компьютерный форум CyberForum.ru

Транслятор - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.60
PakistanCode
2 / 2 / 0
Регистрация: 05.02.2013
Сообщений: 175
15.03.2013, 10:55     Транслятор #1
Подскажите пожалуйста хорошую литературу на эту тему. Т.е. с чего нужно начать, какой порядок действий и т.п.

А сама программа должна переводить какой-то небольшой код на одном языке - в другой.
Я думаю взять С++, а со вторым ещё не определился, думаю ваш совет поможет.
Спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
15.03.2013, 11:05     Транслятор #2
Второй обычно опкоды.
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
15.03.2013, 11:40     Транслятор #3
Не берите Си++, прошу. Тогда у вас или будет кастрированный транслятор (что плохо с дидактической точки зрения), или вы застрелитесь ещё при попытке разобрать синтаксическое дерево (или ещё раньше, если попробуете написать парсер самостоятельно).
PakistanCode
2 / 2 / 0
Регистрация: 05.02.2013
Сообщений: 175
15.03.2013, 11:54  [ТС]     Транслятор #4
OhMyGodSoLong, taras atavin, а что-нибудь по поводу литературы можете подсказать?
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
15.03.2013, 12:19     Транслятор #5
По парсерам — бессменную Dragon Book (есть на русском).

Галопом по Европам теории языков — Design Concepts in Programming Languages.

Книг "как писать трансляторы" что-то так сразу и не скажу. Да и не думаю, что это будет полезно.
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,337
Завершенные тесты: 1
15.03.2013, 13:37     Транслятор #6
Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
бессменную Dragon Book

Вот можете поглядеть как (и сколько) такие вещи пишутся реально: Пишем свой интерпретатор языка BASIC
Вот Литература С++.
А по поводу языков я бы посоветовал Си (без плюсов) и Турбо Паскаль. Если глубоко не лезть и ограничиться только основными функциями, то можно за пару дней уже отладить.

Цитата Сообщение от PakistanCode Посмотреть сообщение
Т.е. с чего нужно начать, какой порядок действий и т.п.
Берете, загружаете файл с исходным языком и парсите его каким-нибудь чудодейственным алгоритмом. Попался вам (на примере из С в Delphi) оператор сложения "+", вы так и пишете в выходной файл "+"; попался оператор присваивания "=", вы пишете ":="; попался "print(X);" пишите "Write(X);"...
ITcrusader
Эксперт C++
 Аватар для ITcrusader
176 / 162 / 8
Регистрация: 12.02.2013
Сообщений: 410
15.03.2013, 13:41     Транслятор #7
Цитата Сообщение от PakistanCode Посмотреть сообщение
Я думаю взять С++, а со вторым ещё не определился, думаю ваш совет поможет.
Возьми ассемблер в качестве второго Я писал транслятор из подмножества C++ (очень маленького) в него. Интересная затея))) Книги дома гляну, если есть - отпишусь.

Цитата Сообщение от SatanaXIII Посмотреть сообщение
Берете, загружаете файл с исходным языком и парсите его каким-нибудь чудодейственным алгоритмом.
Это не интересно. Интересно настоящий транслятор накатать в асм. Лексический анализатор, синтаксический, семантический, конвертор в asm. Там потрясающе интересная цепочка выстраивается. Модули поиска ошибок на разных уровнях, ммммм, вкусняшка
PakistanCode
2 / 2 / 0
Регистрация: 05.02.2013
Сообщений: 175
15.03.2013, 13:43  [ТС]     Транслятор #8
Всем спасибо большое!) Буду разбираться
ITcrusader
Эксперт C++
 Аватар для ITcrusader
176 / 162 / 8
Регистрация: 12.02.2013
Сообщений: 410
15.03.2013, 13:48     Транслятор #9
Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
Книг "как писать трансляторы" что-то так сразу и не скажу. Да и не думаю, что это будет полезно.
Будет, если чувак не изучает C++ таким образом, а сконцентрируется на технологии построения транслятора. Ежели парсингом овладевать, ну напиши XML-парсер)
ITcrusader
Эксперт C++
 Аватар для ITcrusader
176 / 162 / 8
Регистрация: 12.02.2013
Сообщений: 410
15.03.2013, 13:59     Транслятор #10
PakistanCode, лови, хороший курс лекций (я по нему, когда учился, писал).
Вложения
Тип файла: zip трансляторы.zip (229.1 Кб, 79 просмотров)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2013, 15:12     Транслятор
Еще ссылки по теме:

C++ Пишу транслятор и интерпритатор
Написать курсовую "Транслятор из C++ в Pascal" C++
C++ Как назвать транслятор языка PL/0

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

Или воспользуйтесь поиском по форуму:
Avazart
 Аватар для Avazart
6906 / 5146 / 253
Регистрация: 10.12.2010
Сообщений: 22,639
Записей в блоге: 17
15.03.2013, 15:12     Транслятор #11
У Шилда есть простой пример транслятора кода ... там кажется добавляются расширение (на foreach и еще что-то ..)
Yandex
Объявления
15.03.2013, 15:12     Транслятор
Ответ Создать тему
Опции темы

Текущее время: 06:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru