Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/26: Рейтинг темы: голосов - 26, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 03.06.2011
Сообщений: 23
1

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

02.09.2011, 16:45. Показов 5164. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Короче, я хочу овладеть языком Си и написать на нем свой интерпретируемый язык программирования
Но к сожалению, сейчас моих знаний не хватает даже на написание токенайзера, что меня не радует. Посоветуйте, какие задачи решать, какие алгоритмы реализовывать, что бы в конце-концов прийти к своей цели.

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

Добавлено через 1 минуту
П.П.С. Тему про интерпретатор бейсика на С++ я читал, но это же С++, а не Си.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.09.2011, 16:45
Ответы с готовыми решениями:

По русскому названию языка программирования определить английское название этого языка
Задача на перечисляемый тип P=(ада, бейсик, модула2, лисп, паскаль, пл2, фортран); A=(ada, basic,...

Напутствие с выбором языка программирования
Здравствуйте нужна помощь от опытных участников в нескольких вопросах 1) Нормально ли пойдет C++...

Выбор языка программирования ООП
Программирую на php&mysql. Знаю Си. (Си изучал чтобы написать модулей для php). Хотелось бы изучить...

Интерпретатор небольшого языка программирования на С++
Здравствуйте, уважаемые форумчане! Я тут где-то год назад прочитал тему Evg и #pragma о создании...

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

Кто-то еще что нибудь может посоветовать?
0
Эксперт С++
623 / 467 / 57
Регистрация: 28.01.2011
Сообщений: 605
03.09.2011, 16:23 6
Bizunov, если знакомы с английским, то очень советую книжку "Modern compiler implementation in C" — Andrew W. Appel. Всё объяснено очень хорошо, подробно, от начала до конца. В плане теории необходимые алгоритмы тоже описаны чётко. Плюс ко всему прочему, в конце каждой главы есть раздел "Упражнения", так что в плане практических задачек есть что порешать.
2
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
04.09.2011, 08:05 7
Цитата Сообщение от Bizunov
Короче, я хочу овладеть языком Си и написать на нем свой интерпретируемый язык программирования
посмотри на python.org исходники
1
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 главы.
Кстати, эта книга только на английском?
0
1405 / 647 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
04.09.2011, 20:53 9
Цитата Сообщение от Bizunov Посмотреть сообщение
Кстати, эта книга только на английском?
Нет, на русском есть. Это же крутая книга, и как ее можно было не перевести.
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
05.09.2011, 02:16 10
Цитата Сообщение от Bizunov
Ок, гляну. Но что0то мне подсказывает, что я там ничерта не пойму.
питон сделан на C89
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
05.09.2011, 03:30 11
Еще можно почитать книгу "Компиляторы. Принципы, технологии, инструменты" за авторством Ахо, Лан, Сети, Ульмана. Там довольно-таки много материала посвящено именно лексическому анализу.
Тебя интересует написание интерпретатора именно на С? А то мог бы посоветовать чрезвычайно полезное чтиво.
1
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
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 году еще вышла книга Никлауса Вирта Построение компиляторов. Это - минимум, который надо знать.
3
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
05.09.2011, 09:02 13
Bizunov, думаю, неплохой практикой будет xml-парсер написать. Начать с простого разбора и до взрослого варианта с форматированием и прочими радостями...
0
0 / 0 / 0
Регистрация: 03.06.2011
Сообщений: 23
05.09.2011, 19:01  [ТС] 14
Цитата Сообщение от Dani Посмотреть сообщение
Нет, на русском есть. Это же крутая книга, и как ее можно было не перевести.
Такс, коплю деньги )
Цитата Сообщение от accept Посмотреть сообщение
питон сделан на C89
Это не облегчает задачу. Его я плохо знаю + проект очень большой, для меня, по крайней мере.
0
1405 / 647 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
05.09.2011, 20:24 15
Цитата Сообщение от Bizunov Посмотреть сообщение
Такс, коплю деньги )
я на нее кучу денег убухал 60 баксов почти
0
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
05.09.2011, 21:48 16
Bizunov, советую взять исходники Evg отсюда (они написаны на C) и разобраться.
Представление выражения в двоичном дереве
Пояснения к своему коду он даёт немного ниже:
Представление выражения в двоичном дереве
Это программа по разбору выражений. Мне в своё время очень помогло,и до последней версии интерпретатора можно увидеть использованные мной куски кода из его программы. А ещё почитайте теоретические выкладки Evg из темы про интерпретатор, во-первых,он приводит примеры на C,а во-вторых,теория не привязана к языку.
Мне кажется, самый лучший способ - это начать писать, столкнуться с трудностями, и потом уже лезть в теорию. Мне так легче было понять, о чём же пишет Evg
1
0 / 0 / 0
Регистрация: 03.06.2011
Сообщений: 23
07.09.2011, 18:50  [ТС] 17
#pragma, спасибо, полистаю как нибудь.
Тут внезапно (точнее, ВНЕЗАПНО) началась учеба, по этому, сейчас ни чего не пробую написать. Вчера учил наизусть 14 страниц рукописного текста, блин. Предмет "Основы алгоритмизации и программирования" оказался очень суровым!
0
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
07.09.2011, 21:32 18
Цитата Сообщение от Bizunov Посмотреть сообщение
#pragma, спасибо, полистаю как нибудь.
Тут внезапно (точнее, ВНЕЗАПНО) началась учеба, по этому, сейчас ни чего не пробую написать. Вчера учил наизусть 14 страниц рукописного текста, блин. Предмет "Основы алгоритмизации и программирования" оказался очень суровым!
Зачем учить наизусть? С ума сошли?????
Думать над материалом надо, раскладывать по полочкам - и на практике пробовать применить.
А учить наизусть - это УЖОС!!!!!!
2
07.09.2011, 21:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.09.2011, 21:32
Помогаю со студенческими работами здесь

перевести с одного языка программирования на другой
условие задачи Вариант 1. Получить квадратную матрицу A размером NN (N – случайное число...

Посоветуйте литературу по изучению языка программирования С++ ?
Всем добрый вечер! Посоветуйте толковые книжки по программированию на языке С++ с нуля ? Тоесть...

Написание программ на нескольких языках программирования
Написание программ на нескольких языках программирования - слышал, что так можно делать. А как? ...

Разработайте лексический анализатор для языка программирования C--
Лексемы, допустимые в языке: letter ::= a | b | ... | z | A | B | ... | Z digit ::= 0 | 1 |...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru