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

C++

Войти
Регистрация
Восстановить пароль
 
want_my_dream
0 / 0 / 0
Регистрация: 11.04.2015
Сообщений: 31
#1

Транслятор собственного языка - C++

27.02.2016, 22:07. Просмотров 305. Ответов 9
Метки нет (Все метки)

Собственно, во втором семестре нас ожидает курсовая работу, суть которой заключается в написании транслятора для своего языка программирования. Мне это показалось таким захватывающим, что появилось желание сейчас все это изучить. Подскажете с чего начать? Знаю, что нужен лексический анализатор, синтаксический анализатор, семантический анализатор. Но пока не имею понятия откуда это все берется и как. Собственно, с чего начать?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DrOffset
6851 / 4062 / 927
Регистрация: 30.01.2014
Сообщений: 6,859
27.02.2016, 23:07     Транслятор собственного языка #2
want_my_dream, начни с этой книги.
Evg
Эксперт CАвтор FAQ
17391 / 5629 / 352
Регистрация: 30.03.2009
Сообщений: 15,415
Записей в блоге: 26
28.02.2016, 10:27     Транслятор собственного языка #3
Пишем свой интерпретатор языка BASIC
Izual
94 / 119 / 6
Регистрация: 13.11.2012
Сообщений: 1,537
28.02.2016, 10:44     Транслятор собственного языка #4
Цитата Сообщение от want_my_dream Посмотреть сообщение
с чего начать
Думаю с обзора семантики самого языка С++. Т.е. базовые манипуляции с объектами, например операторы, scope, математические манипуляции, логические, т.е. всё то что обычно на первых 20 страницах обычной книженции по Си/С++. Ну и пилить функционал для всего этого. (правильно сделал что начал сейчас, если делать "практически всё", то годы уйдут, одни лишь функции - это уже гг уровень, врятли ты конешно на 2 семестре знаеш dyncall, через который это можно сделать, да и знаний думаю нет даже для старта по работе с DLL функциями в real time)
Второй семестр, и уже такие задачи, круто ^^
Evg
Эксперт CАвтор FAQ
17391 / 5629 / 352
Регистрация: 30.03.2009
Сообщений: 15,415
Записей в блоге: 26
28.02.2016, 10:49     Транслятор собственного языка #5
Цитата Сообщение от Izual Посмотреть сообщение
Думаю с обзора семантики самого языка С++
Зачем для обучения брать один из самых сложных языков? BASIC в этом отношении на порядки проще. Если хочется культурный язык, то тогда уж Oberon или Pascal, но никак не C++
Hikari
Хитрая блондиночка $)
1447 / 954 / 285
Регистрация: 21.12.2015
Сообщений: 3,798
28.02.2016, 10:58     Транслятор собственного языка #6
Цитата Сообщение от want_my_dream Посмотреть сообщение
Подскажете с чего начать?
С разработки структуры синтаксиса своего языка для начала.
И придется определиться во что именно будет вестись трансляция. То ли это нативный код, то ли это псевдокод - от этого зависит чуть ли не половина работы компилятора.
Izual
94 / 119 / 6
Регистрация: 13.11.2012
Сообщений: 1,537
28.02.2016, 12:25     Транслятор собственного языка #7
Цитата Сообщение от Evg Посмотреть сообщение
один из самых сложных языков?
Помню школьные годы, Basic и Паскаль.. Принцип то один и тот же.. Толку брать старый язык, который в последствии не сможеш использовать? (имею ввиду, если автор начнёт делать интерпритатор Си, то можно будет и в последующем - использовать это, да и если уж обучение, то видимо нужно хотя бы несколько операций сделать)

Ладно, по теме, Порядок действий:
1) Выбрать динамический контейнер для работы с аргументами разного типа. (вектор или VARIANT или свой, например №6 пост)
2) Сделать scope уровни. (описывающие Пространство и время жизни переменной)
2) Сделать инициализацию и приравнивание для переменных.
Ну и дальше операторы, циклы, математика..
cyber-satyr
Заблокирован
29.02.2016, 01:15     Транслятор собственного языка #8
Книга дракона конечно классика, но начать можно и с более простой. SICP (есть качественный русский перевод) завершается интерпретатором scheme, Вирт хорошая небольшая книга на примере языка Oberon.
Цитата Сообщение от Izual Посмотреть сообщение
Толку брать старый язык, который в последствии не сможеш использовать?
Взять современный дурно пахнущий спроектированный и невероятно сложный язык лучше? На вопрос можно не отвечать.
Izual
94 / 119 / 6
Регистрация: 13.11.2012
Сообщений: 1,537
29.02.2016, 08:30     Транслятор собственного языка #9
Цитата Сообщение от cyber-satyr Посмотреть сообщение
невероятно сложный язык
Повторяетесь... Сложный синтаксис только у структур, unionov и классов. База же одинакова.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.02.2016, 14:54     Транслятор собственного языка
Еще ссылки по теме:

Матрица переходов. Транслятор C++
C++ Транслятор из языка Паскаль в СИ (текст программы) возможен ли
C++ Пишу транслятор и интерпритатор
C++ Степенной метод нахождения наибольшего по модулю собственного значения и соответствующего ему собственного вектора
C++ Как назвать транслятор языка PL/0

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

Или воспользуйтесь поиском по форуму:
cyber-satyr
Заблокирован
29.02.2016, 14:54     Транслятор собственного языка #10
Оценивать сложность языка в терминах его синтаксиса, все равно что выбирать авто на основании цвета и только его. Не стоит забывать что c++ это солянка из нескольких языков. Так же не стоит щеголять невежеством основываясь на каких-то религиозных убеждениях. Задача состоит в том чтобы научиться строить однозначную грамматику над множеством примитивных операций, а не в том чтобы запилисть еще один язык и развивать его что есть мочи.
Yandex
Объявления
29.02.2016, 14:54     Транслятор собственного языка
Ответ Создать тему
Опции темы

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