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

C++

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

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

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

Собственно, во втором семестре нас ожидает курсовая работу, суть которой заключается в написании транслятора для своего языка программирования. Мне это показалось таким захватывающим, что появилось желание сейчас все это изучить. Подскажете с чего начать? Знаю, что нужен лексический анализатор, синтаксический анализатор, семантический анализатор. Но пока не имею понятия откуда это все берется и как. Собственно, с чего начать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2016, 22:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Транслятор собственного языка (C++):

Транслятор с паскаля на С - C++
Салют! Можете привести самый простой пример транслятора с паскаля на С, заранее спасибо

Создание собственного оператора С++ - C++
Как создать собственный оператор типа if, в смысле Оператор (){ ...//Какие-то действия } Я просто хочу создать нечто наподобие...

Транслятор-анализатор, создание своего языка - C++ Builder
Помогите, пожалуйста, нужно доделать свои язык. Правила грамматики такие же как и у C++, но никак не могу сообразить как доделать работу. К...

Создание собственного таймера - C++ Builder
Добрый вечер, уважаемые участники форума!!! Тут привел фрагмент кода, который при заданном времени выводил сообщение: void...

Создание собственного класса - C++ Builder
подскажите где и как нужно описывать что б создался собственный клас. и для чиво и как он работает))) #include <vcl.h> #pragma...

Qreport создание собственного предпросмотра - C++ Builder
Есть 2 формы. Form1 : на ней находится пять quickrep (quickrep1-quickrep5). Form2 : на ней находится QRPreview. Вопрос: Как связать...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
DrOffset
7092 / 4233 / 950
Регистрация: 30.01.2014
Сообщений: 7,008
27.02.2016, 23:07 #2
want_my_dream, начни с этой книги.
Evg
Эксперт CАвтор FAQ
17630 / 5854 / 376
Регистрация: 30.03.2009
Сообщений: 16,141
Записей в блоге: 26
28.02.2016, 10:27 #3
Пишем свой интерпретатор языка BASIC
Izual
94 / 119 / 6
Регистрация: 13.11.2012
Сообщений: 1,551
28.02.2016, 10:44 #4
Цитата Сообщение от want_my_dream Посмотреть сообщение
с чего начать
Думаю с обзора семантики самого языка С++. Т.е. базовые манипуляции с объектами, например операторы, scope, математические манипуляции, логические, т.е. всё то что обычно на первых 20 страницах обычной книженции по Си/С++. Ну и пилить функционал для всего этого. (правильно сделал что начал сейчас, если делать "практически всё", то годы уйдут, одни лишь функции - это уже гг уровень, врятли ты конешно на 2 семестре знаеш dyncall, через который это можно сделать, да и знаний думаю нет даже для старта по работе с DLL функциями в real time)
Второй семестр, и уже такие задачи, круто ^^
Evg
Эксперт CАвтор FAQ
17630 / 5854 / 376
Регистрация: 30.03.2009
Сообщений: 16,141
Записей в блоге: 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,551
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,551
29.02.2016, 08:30 #9
Цитата Сообщение от cyber-satyr Посмотреть сообщение
невероятно сложный язык
Повторяетесь... Сложный синтаксис только у структур, unionov и классов. База же одинакова.
cyber-satyr
Заблокирован
29.02.2016, 14:54 #10
Оценивать сложность языка в терминах его синтаксиса, все равно что выбирать авто на основании цвета и только его. Не стоит забывать что c++ это солянка из нескольких языков. Так же не стоит щеголять невежеством основываясь на каких-то религиозных убеждениях. Задача состоит в том чтобы научиться строить однозначную грамматику над множеством примитивных операций, а не в том чтобы запилисть еще один язык и развивать его что есть мочи.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.02.2016, 14:54
Привет! Вот еще темы с ответами:

Создание собственного стиля окон - C++ Builder
Как в C++ Builder создать свой вид форм вместо стандартного вида?

Создание собственного обработчика события - C++ Builder
Есть компонент с TStringList, как добавить в этот компонент собственный обработчик события? К примеру отлавливать его изменения и...

Транслятор языка запросов СУБД - Базы данных
Кто нибудь занимался разработкой такого рода трансляторов? Где можно найти информацию?

Как назвать транслятор языка PL/0 - C++
Привет. В книге Вирта (Алгоритмы + структуры данных = программы) в конце разрабатывается Транслятор языка PL/0. Я решил его реализовать....


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
29.02.2016, 14:54
Ответ Создать тему
Опции темы

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