powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Компилятор для С++
25 сообщений из 32, страница 1 из 2
Компилятор для С++
    #34802749
lacost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вобщем нужно написать не большой компилятор для языка С++ на С++ :)
компилятор должен запускать в консольном режиме знать элементарные функции....и проверять синтаксис

В принцепе я пока даже особо идей не имею как его писать....
Подкинь те пару можно ли как то реализовать чтобы подключать библиотеки в компилятор и он уже сам знал как работать с теми или иными функция ми и как их понимать
Опять же очень сложно будет читать текст который написал пользователь в консольном режиме и понемать его......единственная идея это через case читать Char и в зависимости от переменной Char уже генерировать текст программы

Буду благодарен за идеи или текст компилятора
...
Рейтинг: 0 / 0
Компилятор для С++
    #34802755
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lacost wrote:

> Вобщем нужно написать не большой компилятор для языка С++ на С++ :)
> компилятор должен запускать в консольном режиме знать элементарные
> функции....и проверять синтаксис
>
Вопрос - а зачем/для чего? ИМХО, по сложности это "ой".
Есть готовые компиляторы с доступными исходниками - g++, mingw
(фактически порт g++/gcc под винду) OpenWatcom и есть интерпретатор
C++ - cint. Посмотрите, может, поможет чем-нибудь.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Компилятор для С++
    #34802791
Тынц.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lacostВобщем нужно написать не большой компилятор для языка С++ на С++ :)
компилятор должен запускать в консольном режиме знать элементарные функции....и проверять синтаксис

В принцепе я пока даже особо идей не имею как его писать....
Подкинь те пару можно ли как то реализовать чтобы подключать библиотеки в компилятор и он уже сам знал как работать с теми или иными функция ми и как их понимать
Опять же очень сложно будет читать текст который написал пользователь в консольном режиме и понемать его......единственная идея это через case читать Char и в зависимости от переменной Char уже генерировать текст программы

Буду благодарен за идеи или текст компилятора
Курсовик? А чего так рано, ещё ведь только начало учебного года. Или хвост? :)
Помню был курсе на 3-м предмет "Формальные языки и проектирование компиляторов" - интересный, но слишком формальный :) На практике ограничились то ли лексическим, то ли синтаксическим анализатором для примитивной грамматики.

Идеи и теорию можно поискать тут, например: http://ihtik.lib.ru/dreamhost_complit_22janv2007.html - всего-то с десяток книжек прочитать [пару раз] и всё станет понятно :)
Исходники - ErV уже привёл примеры open source компиляторов.
...
Рейтинг: 0 / 0
Компилятор для С++
    #34802798
teras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот еще интересная вещь: OpenC++ . Может пригодится для написания различного рода препроцессоров языка C++.
...
Рейтинг: 0 / 0
Компилятор для С++
    #34802805
lacost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да именно курсак.....всем пля фигню типо игры "как стать миллионером" или базы успеваемости студентов

А мне тест по програмированию, в котором нужно отвечать на вопрос решением задачи на С++ а тест компилирует (выполняет) эту программу и соответсвенно для себя определяет на сколько правильно и рацоинально она написана....а по скольку идей ох как мало а работы ох как много лучше начать сразу....
...
Рейтинг: 0 / 0
Компилятор для С++
    #34802809
lacost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ErV.....извени за тупой вопрос но где посмотреть эти исходники?

ЗЫ: спс всем за полезные линки....как раз сеичас просматриваю
...
Рейтинг: 0 / 0
Компилятор для С++
    #34802813
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то создание компилляторов это серъёзная тема. Для курсака - тяжеловато. Вобщем-то есть инструментальные средства создания трансляторов (насчёт компилляторов не уверен). Это различные Byacc, Bizon, Antlr. Но изучение их возможностей отбросит тебя во времени назад. Да и вообще это работка не на одну неделю.

Если времени не хватит то я предлагаю тебе 1) досконально разобратся в предметной области. 2) взять какой нибудь noname-компиллятор С++. Внести в него свои водяные знаки-копирайты и сдать как свою работу. 3) Если препод будет придиратся и чего-то требовать пересобрать, скажи что это технически сложно и есть привязка к своему личному железу. Будет требовать исходники - покажи сорцы какого-нибудь gcc, убрав предварительно каменты.
...
Рейтинг: 0 / 0
Компилятор для С++
    #34802816
lacost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonВообще-то создание компилляторов это серъёзная тема. Для курсака - тяжеловато. Вобщем-то есть инструментальные средства создания трансляторов (насчёт компилляторов не уверен). Это различные Byacc, Bizon, Antlr. Но изучение их возможностей отбросит тебя во времени назад. Да и вообще это работка не на одну неделю.

Если времени не хватит то я предлагаю тебе 1) досконально разобратся в предметной области. 2) взять какой нибудь noname-компиллятор С++. Внести в него свои водяные знаки-копирайты и сдать как свою работу. 3) Если препод будет придиратся и чего-то требовать пересобрать, скажи что это технически сложно и есть привязка к своему личному железу. Будет требовать исходники - покажи сорцы какого-нибудь gcc, убрав предварительно каменты.

Примерно это я хочу сделать...написать свой компилятор это оооочень трудоёмко и у меня займёт 3-4 месяца, поэтому хочу взять текст какогнибудь компилятора скаже мтолько для бибилиотеки #iostream.h напиример разобраться в принцепе его написания....а потом уже самому внести нужные мне изменения, или взять текст хорошего компилятора с кучей пояснений на русском желательно и разбираться, разбираться, разбираться!!! Может кто то попмоч с этим

teras , я скачал opencxx-2.8.tar и даже не понял как его юзать Оо
...
Рейтинг: 0 / 0
Компилятор для С++
    #34802841
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
требуется сразу введенную команду в бинарку или как ?.

или требуется интерпретатор ??.

аффтопитезь: 4 8 15 16 23 42
...
Рейтинг: 0 / 0
Компилятор для С++
    #34802856
teras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lacostПримерно это я хочу сделать...написать свой компилятор это оооочень трудоёмко и у меня займёт 3-4 месяца, поэтому хочу взять текст какогнибудь компилятора скаже мтолько для бибилиотеки #iostream.h напиример разобраться в принцепе его написания....а потом уже самому внести нужные мне изменения, или взять текст хорошего компилятора с кучей пояснений на русском желательно и разбираться, разбираться, разбираться!!! Может кто то попмоч с этим Я бы сказал, что даже с такими ограничениями вы не уложитесь в 3-4 месяца. Конечно, все еще зависит от качества. Если говорить о компиляторе промышленного качества (расчитанном на расширение и сопровождение), я бы взял 1-1,5 месяца на самый простой язык. Месяца три на C, и не менее шести на C++.
Вообще мой совет - если хочется возиться с компилятором и C++, возьмите какой-нибудь маленький компилятор C (их куча - SmallC, tcc, и много-много других) поищите один с приличной поддержка структур, и реализуйте методы классов. Если есть желание - полиморфизм и виртуальные методы. Этого наверняка хватит за глаза. Если C++ не так уж и важен - сделайте подмножество C или какой-нибудь функциональный язык, типа lisp или scheme.

Кое-что можно найти здесь: http://www.freeprogrammingresources.com/cppcomp.html

И пара интерпретаторов C++:
http://root.cern.ch/twiki/bin/view/ROOT/CINT
http://home.mweb.co.za/sd/sdonovan/underc.html

lacost teras , я скачал opencxx-2.8.tar и даже не понял как его юзать Оо Это парсер и анпарсер - позволяет прочитать входную программу на C++ во внутренее представление, обработать его, и, при необходимости преобразовать опять в C++. Подробности - в документации.
...
Рейтинг: 0 / 0
Компилятор для С++
    #34802957
rm15
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://]http://www.biblus.ru/Default.aspx?book=5697l4u7

Куча объяснений на русском и текст компилятора смолл-си на 67 страницах.
Два типа переменных char и int. Никаких классов, но есть препроцессор.
Должно для курсовой хватить, с преподавателем нужно договориться сузить тему.

Хотя, если сам можешь на С++ за несколько месяцев написать, зачем спрашиваешь советы?
...
Рейтинг: 0 / 0
Компилятор для С++
    #34802958
rm15
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Компилятор для С++
    #34802959
lacost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rm15http://]http://www.biblus.ru/Default.aspx?book=5697l4u7

Куча объяснений на русском и текст компилятора смолл-си на 67 страницах.
Два типа переменных char и int. Никаких классов, но есть препроцессор.
Должно для курсовой хватить, с преподавателем нужно договориться сузить тему.

Хотя, если сам можешь на С++ за несколько месяцев написать, зачем спрашиваешь советы?

огромное тебе СПОСИБО!! Завтра буду смотреть. Я то напишу за несколько месяцев.....вот только откажусь от любого отдыха и буду жить С++...меня такая перспектива мало привлекает :) И к тому же это только часть курсовой....сама курсвая это тест по програмированию, который мало того что компилирует и проверяет правельность написанной пользователем программы (без компиляции сложно будет правильность проверить :D ) но ещё и указывает на явные ошибки+ оценивает рациональность выполнения...хотя по сравнению с компилятором это мелочи но всёже...а это ещё и оформить надо...в консольном режиме T_T
...
Рейтинг: 0 / 0
Компилятор для С++
    #34802960
lacost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
teras, сенк, уверен пока только просмторел..но уверен найдё много полезно, ещё рас спосибо

ЗЫ: оффтоп: на этом форуме вобще свой пост редактировать можно уже второй рас два поста пишу
...
Рейтинг: 0 / 0
Компилятор для С++
    #34803009
скубент_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ИМХО, не понято задание. Т.к. если остальным игры\тесты делать, а тут - компилятор (а линковщик вы тоже делать будете)?
Мне кажется необходимо было бы написать что-то типа раскарашивальщика синтаксиса с подсчетом количества операторов - на основе этого высчитывался бы критерий оптимальности кода например.
Также мне кажется лучше уточнить задание, а то если вместо простенького теста на С - принесете исходники gcc - не будет ли это хуже?

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

Писать компилятор и "О! СчастЛфчик" - это что-то круто у Вас преподы студентов дифференциируют :)
...
Рейтинг: 0 / 0
Компилятор для С++
    #34803025
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lacost пишет:
> Вобщем нужно написать не большой компилятор для языка С++ на С++ :)
> компилятор должен запускать в консольном режиме знать элементарные
> функции....и проверять синтаксис

т.е. интерпретатор С++ хочешь написать ?
Если всего С++, то это очень сложно. С++ один из самых сложнейших
существующих языков. А если тебе нужно только С, то кажется уже существует
какой-то интерпретатор с открытым кодом, то ли совсем free, то ли GPL.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Компилятор для С++
    #34803027
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lacost пишет:
> Да именно курсак.....всем пля фигню типо игры "как стать миллионером"
> или базы успеваемости студентов
>
> А мне тест по програмированию, в котором нужно отвечать на вопрос
> решением задачи на С++ а тест компилирует (выполняет) эту программу и
> соответсвенно для себя определяет на сколько правильно и рацоинально она
> написана....а поскольку идей ох как мало а работы ох как много лучше
> начать сразу....

Тут вроде бы не надо писать компилятор языка С++.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Компилятор для С++
    #34803028
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teras пишет:
> Я бы сказал, что даже с такими ограничениями вы не уложитесь в 3-4
> месяца. Конечно, все еще зависит от качества. Если говорить о
> компиляторе промышленного качества (расчитанном на расширение и
> сопровождение), я бы взял 1-1,5 месяца на самый простой язык. Месяца три
> на C, и не менее шести на C++.

Оптимист, аднако ! ЛЕТ на шесть, минимум.

Я думаю в задании не сказано, что надо писать свой транслятор или
интерпретатор С++. Надо просто хранить вопросы и саисок ответов
на них с коэффициентом правильности. Суммировать баллы за ответы
на вопросы с учетом этих коэффициентов. Это похоже и на
"стать миллионером", и на задание для курсовика, цель которого
обычно дать учащемуся в общих чертах ознакомиться с изучаемыми
технологиями. Как кстати предмет-то называется, по которому
курсовик ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Компилятор для С++
    #34803071
teras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivОптимист, аднако ! ЛЕТ на шесть, минимум. Ну, все не так страшно :-) Возможно, несколько оптимистично, но за полгода более/менее реально создать инфраструктуру компилятора - поддержку системы типов, деревья синтаксиса, развертку шаблонов, лексический и синтаксический анализаторы, простенький генератор кода. Остальные пять с половиной лет уйдут на то, чтобы исправить основную часть ошибок и сделать относительно приличный оптимизатор.

> А мне тест по програмированию, в котором нужно отвечать на вопрос
> решением задачи на С++ а тест компилирует (выполняет) эту программу и
> соответсвенно для себя определяет на сколько правильно и рацоинально она
> написана....а поскольку идей ох как мало а работы ох как много лучше
> начать сразу....

Слово "рационально" тут не нравится. Правильность синтаксиса можно проверить запуском компилятора. Правильность работы - сравнением ожидаемого и полученного результата. А вот рациональность определить не удастся, ИМХО. Во-первых, возможны различные толкования рациональности (скорость работы, использование ресурсов, безопасность, читаемость), а во-вторых - не существует способа определения того, насколько программа рациональна в каком-либо из этих смыслов. Человеки для этого используют субъективные факторы, и оценки могут диаметрально противоположными у разных людей.

Есть системы оценки качества кода(code metrics или software metrics ), основанные на вычислении различных статистик, типа количества и длины комментариев, величины функций, длины идентификаторов и т.д. Возможно, вам нужно просто задействовать внешний компилятор и подобную систему.
...
Рейтинг: 0 / 0
Компилятор для С++
    #34803091
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivЯ думаю в задании не сказано, что надо писать свой транслятор или
интерпретатор С++. Надо просто хранить вопросы и саисок ответов
на них с коэффициентом правильности. Суммировать баллы за ответы
на вопросы с учетом этих коэффициентов.

Я тоже склюняюсь к этой мысли. Я учился в неслабом универе. И не помню случаев, чтобы студент мог в течение 1 семестра в рамках курсовой работы создать ПОЛНОЦЕННЫЙ компиллятор, для СЕРЬЕЗНОГО языка программирования.

Помню на 2 курсе мы сдавали курсоввые по теме "ассемблер для гипотетической ЭВМ". У каждого был свой набор команд и, кроме того вариант задания выдавался не на одного, а на на "пару" студентов. Один студент кодил ассеблер и линкер, а второй - эмулятор среды исполнения. Это задание вполне осуществимо.
...
Рейтинг: 0 / 0
Компилятор для С++
    #34803137
lacost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rm15 , я зашел по линку который ты дал там только кника которую нельзя скачать а только заказывать....

Ребят спосибо за кучу ценных советов, но подскажите где можно взять текст самого ПРОСТОГО компилятора С, с обьяснениями на русском, чтобы я мог уже от чегото отталкиваться и хоть понять принцип написания, а потом я думаю я и сам уже смогу внести нужные мне изменения

teras

Есть системы оценки качества кода(code metrics или software metrics ), основанные на вычислении различных статистик, типа количества и длины комментариев, величины функций, длины идентификаторов и т.д. Возможно, вам нужно просто задействовать внешний компилятор и подобную систему.

Идея супер, но если бы я знал как практически это сделать.....если не сложно хотябы пример запуска готового компилятора программой, т.е. например читаем текст пользователя, запускаем компилятор...для меня просто представляеться сложным запустить что то не моё, не зная как оно работает.
ЗЫ: задача звучала так "тест на знание С++, который компилирует текст пользователя и проверяет его на правильность и рациональность" я студент 2-ого курса, поэтому о С++ знаю достаточно мало и соотватсвенно мой копмилятор тоже не должен много знать %)
...
Рейтинг: 0 / 0
Компилятор для С++
    #34803209
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА мне тест по програмированию, в котором нужно отвечать на вопрос решением задачи на С++ а тест компилирует (выполняет) эту программу и соответсвенно для себя определяет на сколько правильно и рацоинально она написана.

может стоит повнимательней посмотреть на задание и если что переспросить у препода. По-моему тут нет про свой компилятор. Судя по описанию нужно сделать тесты результат которых компилировать сторонним компилятором и анализировать сторонним анализатором. Приложение по выдаче/проверке тестов по программированию нужно сделать а не свой компилятор.
...
Рейтинг: 0 / 0
Компилятор для С++
    #34803219
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teras пишет:

> Ну, все не так страшно :-) Возможно, несколько оптимистично, но за
> полгода более/менее реально создать инфраструктуру компилятора -

Время засекать ? За полгода ты может быть стандарт толком только выучишь.
Хотя чего там ... Главное что студенту в качестве курсовика вряд ли это
задали.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Компилятор для С++
    #34803220
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton пишет:

> Помню на 2 курсе мы сдавали курсоввые по теме "ассемблер для
> гипотетической ЭВМ". У каждого был свой набор команд и, кроме того
> вариант задания выдавался не на одного, а на на "пару" студентов. Один
> студент кодил ассеблер и линкер, а второй - эмулятор среды исполнения.

Да-да, и ассемблер должен быть на 5-10 комманд.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Компилятор для С++
    #34803221
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1024 пишет:
> сделать тесты результат которых компилировать сторонним компилятором и
> анализировать сторонним анализатором. Приложение по выдаче/проверке
> тестов по программированию нужно сделать а не свой компилятор.

Да думаю его и компилировать не надо.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
25 сообщений из 32, страница 1 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / Компилятор для С++
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]