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

Написание интерпретируемого языка программирования - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.92
Bizunov
0 / 0 / 0
Регистрация: 03.06.2011
Сообщений: 23
02.09.2011, 16:45     Написание интерпретируемого языка программирования #1
Короче, я хочу овладеть языком Си и написать на нем свой интерпретируемый язык программирования
Но к сожалению, сейчас моих знаний не хватает даже на написание токенайзера, что меня не радует. Посоветуйте, какие задачи решать, какие алгоритмы реализовывать, что бы в конце-концов прийти к своей цели.

П.С. Заранее хочу сказать, что готовые решения типа Флексов, Бизонов и т.д. предлогать не нужно.

Добавлено через 1 минуту
П.П.С. Тему про интерпретатор бейсика на С++ я читал, но это же С++, а не Си.
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
02.09.2011, 16:46     Написание интерпретируемого языка программирования #2
Для начала в книге Страуструпа есть 2 главы про калькулятор и выделение лексем, кстати там коворится, что при создании языка он и использовал лексемы. Почитайте.
Bizunov
0 / 0 / 0
Регистрация: 03.06.2011
Сообщений: 23
02.09.2011, 17:17  [ТС]     Написание интерпретируемого языка программирования #3
Ну ок, спасибо. А точное название?
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
02.09.2011, 18:15     Написание интерпретируемого языка программирования #4
Цитата Сообщение от Bizunov Посмотреть сообщение
Ну ок, спасибо. А точное название?
Программирование принципы и практика использования с++. В моей книге (издание 2011) это 6,7 главы.
Bizunov
0 / 0 / 0
Регистрация: 03.06.2011
Сообщений: 23
03.09.2011, 16:04  [ТС]     Написание интерпретируемого языка программирования #5
Спасибо, сейчас буду искать. Держи плюс )

Кто-то еще что нибудь может посоветовать?
Ma3a
Эксперт C++
612 / 456 / 31
Регистрация: 28.01.2011
Сообщений: 605
03.09.2011, 16:23     Написание интерпретируемого языка программирования #6
Bizunov, если знакомы с английским, то очень советую книжку "Modern compiler implementation in C" — Andrew W. Appel. Всё объяснено очень хорошо, подробно, от начала до конца. В плане теории необходимые алгоритмы тоже описаны чётко. Плюс ко всему прочему, в конце каждой главы есть раздел "Упражнения", так что в плане практических задачек есть что порешать.
accept
4837 / 3236 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
04.09.2011, 08:05     Написание интерпретируемого языка программирования #7
Цитата Сообщение от Bizunov
Короче, я хочу овладеть языком Си и написать на нем свой интерпретируемый язык программирования
посмотри на python.org исходники
Bizunov
0 / 0 / 0
Регистрация: 03.06.2011
Сообщений: 23
04.09.2011, 20:48  [ТС]     Написание интерпретируемого языка программирования #8
Цитата Сообщение от Ma3a Посмотреть сообщение
"Modern compiler implementation in C"
Блин, не подходит. Почитал чуть-чуть (благо моих скудных знаний английского хватило для того, что бы понимать суть текста) и увидел Yacc, Lex... Я хочу пиисать все сам.
Цитата Сообщение от accept Посмотреть сообщение
посмотри на python.org исходники
Ок, гляну. Но что0то мне подсказывает, что я там ничерта не пойму.

Добавлено через 1 минуту
Программирование принципы и практика использования с++. В моей книге (издание 2011) это 6,7 главы.
Кстати, эта книга только на английском?
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
04.09.2011, 20:53     Написание интерпретируемого языка программирования #9
Цитата Сообщение от Bizunov Посмотреть сообщение
Кстати, эта книга только на английском?
Нет, на русском есть. Это же крутая книга, и как ее можно было не перевести.
accept
4837 / 3236 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
05.09.2011, 02:16     Написание интерпретируемого языка программирования #10
Цитата Сообщение от Bizunov
Ок, гляну. Но что0то мне подсказывает, что я там ничерта не пойму.
питон сделан на C89
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,390
05.09.2011, 03:30     Написание интерпретируемого языка программирования #11
Еще можно почитать книгу "Компиляторы. Принципы, технологии, инструменты" за авторством Ахо, Лан, Сети, Ульмана. Там довольно-таки много материала посвящено именно лексическому анализу.
Тебя интересует написание интерпретатора именно на С? А то мог бы посоветовать чрезвычайно полезное чтиво.
ValeryLaptev
Эксперт C++
1004 / 783 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
05.09.2011, 04:53     Написание интерпретируемого языка программирования #12
Сообщение было отмечено автором темы, экспертом или модератором как ответ
По компиляторам литературы ДОФИГА! Вот небольшой списочек:


1. Ахо А., Сети Р., Ульман Д. Компиляторы: принципы, технологии и инструменты. – М.: Издательский дом «Вильямс», 2001.
2. Ахо А., Ульман Д. Теория синтаксического анализа, перевода и компиляции. Т.1. Синтаксический анализ. — М.: Мир, 1978.
3. Ахо А., Ульман Д. Теория синтаксического анализа, перевода и компиляции. Т.2. Компиляция. — М.: Мир, 1978.
4. Ахо А., Мотвани Р., Ульман Д. Введение в теорию автоматов, языков и вычисле-ний. – М.: Издательский дом «Вильямс», 2001.
5. Баррон Д. Ассемблеры и загрузчики. — М.: Мир, 1974.
6. Баррон Д. Введение в языки программирования. — М.: Мир, 1980.
7. Бейзер Б. Тестирование черного ящика. Технологии функционального тестиро-вания программного обеспечения и систем. — СПб.: Питер, 2004.
8. Бек Л. Введение в системное программирование. — М.: Мир, 1988.
9. Бен-Ари М. Языки программирования. Практический сравнительный анализ. — М.: Мир, 2000.
10. Браун П. Макропроцессоры и мобильность программного обеспечения. — М.: Мир, 1977.
11. Вайнгартен Ф. Трансляция языков программирования. — М.: Мир, 1977.
12. Винниченко И.В. Автоматизация процессов тестирования. — СПб.: Питер, 2005.
13. Вирт Н. Алгоритмы + данные = программы. — М.: Мир, 1985.

15. Гордеев А.В., Молчанов А.Ю. Системное программное обеспечение. – СПб.: Пи-тер, 2001.
16. Грис Д. Конструирование компиляторов для цифровых вычислительных машин. — М.: Мир, 1975.

18. Донован Дж. Системное программирование. — М.:, Мир, 1975.
19. Зелковиц М., Шоу А., Гэннон Д. Принципы разработки программного обеспече-ния. — М.: Мир, 1982.
20. Карпов Ю.Г. Теория и практика программирования. Основы построения трансля-торов. — Спб.: БХВ-Петербург, 2005.
21. Касьянов В.Н., Поттосин И.В. Методы построения трансляторов. — Новоси-бирск, Наука. Сиб. Отделение, 1986.
22. Кемпбелл-Келли М. Введение в макросы. — М.: Мир, 1978.


28. Льюис Ф., Розенкранц Д., Стирнз Р. Теоретические основы построения компиля-торов. – М.: Мир, 1979.

30. Маккиман У., Хорнинг Дж., Уортман Д. Генератор компиляторов. — М.: Стати-стика, 1980.
31. Мозговой М.В. Классика программирования: алгоритмы, языки, автоматы, ком-пиляторы. Практический подход. — СПб.: Наука и техника, 2006.
32. Молчанов А.Ю. Системное программное обеспечение. Лабораторный практикум. — СПб.: Питер, 2005.
33. Опалева Э.А., Самойленко В.П. Языки и методы трансляции. — СПб.: БХВ-Петербург, 2005.

36. Пратт Т., Зелковиц М. Языки программирования: разработка и реализация. — СПб.: Питер, 2002.
37. Свердлов С.З. Языки программирования и методы трансляции: учебное пособие. — СПб.: Питер, 2007.

Две последние - ИМХО на данный момент самые лучшие для того, чтобы въехать в предмет...

Но есть еще:

46. Фостер Дж. Автоматический синтаксический анализ. — М.: Мир, 1975.
47. Хантер Р. Проектирование и конструирование компиляторов. — М.: Финансы и статистика, 1984.
48. Хантер Р. Основные концепции компиляторов. — М.: Издательский дом «Виль-ямс», 2002.
49. Хендрикс Ж. Компилятор языка Си для микроЭВМ. — М.: Радио и связь, 1989.
50. Хигман Б. Сравнительное изучение языков программирования. — М.: Мир, 1974.

52. Шилдт. Г. Искусство программирования на С++. — Спб.: БХВ-Петербург, 2005.

В последней есть тоже про написание компиляторов-интерпретаторов.
В 2010 году еще вышла книга Никлауса Вирта Построение компиляторов. Это - минимум, который надо знать.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
05.09.2011, 09:02     Написание интерпретируемого языка программирования #13
Bizunov, думаю, неплохой практикой будет xml-парсер написать. Начать с простого разбора и до взрослого варианта с форматированием и прочими радостями...
Bizunov
0 / 0 / 0
Регистрация: 03.06.2011
Сообщений: 23
05.09.2011, 19:01  [ТС]     Написание интерпретируемого языка программирования #14
Цитата Сообщение от Dani Посмотреть сообщение
Нет, на русском есть. Это же крутая книга, и как ее можно было не перевести.
Такс, коплю деньги )
Цитата Сообщение от accept Посмотреть сообщение
питон сделан на C89
Это не облегчает задачу. Его я плохо знаю + проект очень большой, для меня, по крайней мере.
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
05.09.2011, 20:24     Написание интерпретируемого языка программирования #15
Цитата Сообщение от Bizunov Посмотреть сообщение
Такс, коплю деньги )
я на нее кучу денег убухал 60 баксов почти
#pragma
Временно недоступен
 Аватар для #pragma
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
05.09.2011, 21:48     Написание интерпретируемого языка программирования #16
Bizunov, советую взять исходники Evg отсюда (они написаны на C) и разобраться.
Представление выражения в двоичном дереве
Пояснения к своему коду он даёт немного ниже:
Представление выражения в двоичном дереве
Это программа по разбору выражений. Мне в своё время очень помогло,и до последней версии интерпретатора можно увидеть использованные мной куски кода из его программы. А ещё почитайте теоретические выкладки Evg из темы про интерпретатор, во-первых,он приводит примеры на C,а во-вторых,теория не привязана к языку.
Мне кажется, самый лучший способ - это начать писать, столкнуться с трудностями, и потом уже лезть в теорию. Мне так легче было понять, о чём же пишет Evg
Bizunov
0 / 0 / 0
Регистрация: 03.06.2011
Сообщений: 23
07.09.2011, 18:50  [ТС]     Написание интерпретируемого языка программирования #17
#pragma, спасибо, полистаю как нибудь.
Тут внезапно (точнее, ВНЕЗАПНО) началась учеба, по этому, сейчас ни чего не пробую написать. Вчера учил наизусть 14 страниц рукописного текста, блин. Предмет "Основы алгоритмизации и программирования" оказался очень суровым!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.09.2011, 21:32     Написание интерпретируемого языка программирования
Еще ссылки по теме:

Напутствие с выбором языка программирования C++
С помощью языка программирования С++ разработать тестовую оболочку C++
Записать по правилам языка программирования заданную формулу C++

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

Или воспользуйтесь поиском по форуму:
ValeryLaptev
Эксперт C++
1004 / 783 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
07.09.2011, 21:32     Написание интерпретируемого языка программирования #18
Цитата Сообщение от Bizunov Посмотреть сообщение
#pragma, спасибо, полистаю как нибудь.
Тут внезапно (точнее, ВНЕЗАПНО) началась учеба, по этому, сейчас ни чего не пробую написать. Вчера учил наизусть 14 страниц рукописного текста, блин. Предмет "Основы алгоритмизации и программирования" оказался очень суровым!
Зачем учить наизусть? С ума сошли?????
Думать над материалом надо, раскладывать по полочкам - и на практике пробовать применить.
А учить наизусть - это УЖОС!!!!!!
Yandex
Объявления
07.09.2011, 21:32     Написание интерпретируемого языка программирования
Ответ Создать тему
Опции темы

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