IPB
ЛогинПароль:

> 

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Свой компилятор, как из Win32 IDE давать команды компилятору
сообщение
Сообщение #1


Лихорадка неясного генеза.
**

Группа: Пользователи
Сообщений: 81
Пол: Мужской
Реальное имя: Алексей

Репутация: -  0  +


Здарово народ!!!
Вот пишу свой компилятор. И возник такой вопрос компилятор пишется на паскале, а IDE на Делфи.
Так вот как мне из WIN32 приложения отправить в компилятор код и заставить его скомпилировать?

<censored>
Задаешь вопросы - задавай. А правила нарушать не надо!
Правила Форума (пункт 1.12 в частности)


Сообщение отредактировано: volvo -


--------------------
Мир промышленного программирования полон избыточной сложности. В результате такие критерии, как простота, надежность, компактность программ и эффективность исполняемого кода, теперь заменяются на один главный критерий — скорость реализации идей. Приоритет времени разработки понятен: человеческие ресурсы нынче стоят значительно выше, чем аппаратные. Но не теряем ли мы по дороге то ценное, что вернуть потом будет крайне тяжело?..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Текстовые файлы в Win32 приложении еще никто не отменял.

Так же, как и 32-битные версии Паскаля (куда, собственно ты и задаешь вопрос...). Вот и непонятно, о каком Паскале вообще здесь идет речь.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Лихорадка неясного генеза.
**

Группа: Пользователи
Сообщений: 81
Пол: Мужской
Реальное имя: Алексей

Репутация: -  0  +


Извените пожалуста, всё понял. Правила прочитал. Больше не повториться.

Вообще пишу на FPC, но с полной совметимостью с ТурбоПаскаль 7.0 (вообще пока и с 4.0 совместим) для того чтобы мой компилятор смог сам себя компилировать, как можно раньше. Забыл сказать, я компилятор Паскаля пишу, как можно догадаться из предыдущего предложения.

Суть вопроса в том как именно, т.е. хотелось бы пример (или линк на подходящую инфу). Ну как сохранить текстовый файл я знаю, а как приказать из IDE компилятору скомпилировать код?
Вроде ничего не упустил.

З.Ы.: Теперь правильно smile.gif ?


--------------------
Мир промышленного программирования полон избыточной сложности. В результате такие критерии, как простота, надежность, компактность программ и эффективность исполняемого кода, теперь заменяются на один главный критерий — скорость реализации идей. Приоритет времени разработки понятен: человеческие ресурсы нынче стоят значительно выше, чем аппаратные. Но не теряем ли мы по дороге то ценное, что вернуть потом будет крайне тяжело?..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Цитата
а как приказать из IDE компилятору скомпилировать код?
А запустить через WinExec версию командной строки компилятора (у Турбо-Паскаля, если я не ошибаюсь, это TPC.EXE) со всеми необходимыми параметрами (именами файлов, ключами, и т.д.) не судьба?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Лихорадка неясного генеза.
**

Группа: Пользователи
Сообщений: 81
Пол: Мужской
Реальное имя: Алексей

Репутация: -  0  +


Опять я не так написал,извени.
Цитата
как приказать из IDE компилятору скомпилировать код?

Я имел ввиду свой компилятор.
Как сделать чтобы мой екзешник реагировал на ключи и т.п?

Может это всё глупые вопросы, я просто недавно начал программировать на Турбо Паскале, до этого я программировал на делфи и с такими вопросами не сталкивался.


--------------------
Мир промышленного программирования полон избыточной сложности. В результате такие критерии, как простота, надежность, компактность программ и эффективность исполняемого кода, теперь заменяются на один главный критерий — скорость реализации идей. Приоритет времени разработки понятен: человеческие ресурсы нынче стоят значительно выше, чем аппаратные. Но не теряем ли мы по дороге то ценное, что вернуть потом будет крайне тяжело?..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Ну, а чтобы твой EXE-шник заставить реагировать на ключи - тебе прямая дорога к функциям ParamCount/ParamStr и хелпу по Паскалю yes2.gif

(Кстати, Дельфи тоже вполне в состоянии обрабатывать эти же самые функции, у тебя просто как видно не было необходимости в их использовании)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Лихорадка неясного генеза.
**

Группа: Пользователи
Сообщений: 81
Пол: Мужской
Реальное имя: Алексей

Репутация: -  0  +


Спасибо!


--------------------
Мир промышленного программирования полон избыточной сложности. В результате такие критерии, как простота, надежность, компактность программ и эффективность исполняемого кода, теперь заменяются на один главный критерий — скорость реализации идей. Приоритет времени разработки понятен: человеческие ресурсы нынче стоят значительно выше, чем аппаратные. Но не теряем ли мы по дороге то ценное, что вернуть потом будет крайне тяжело?..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Лихорадка неясного генеза.
**

Группа: Пользователи
Сообщений: 81
Пол: Мужской
Реальное имя: Алексей

Репутация: -  0  +


Кому интересно узнать про мой компиллятор и частью чего он станет можете заглянуть сюда.


--------------------
Мир промышленного программирования полон избыточной сложности. В результате такие критерии, как простота, надежность, компактность программ и эффективность исполняемого кода, теперь заменяются на один главный критерий — скорость реализации идей. Приоритет времени разработки понятен: человеческие ресурсы нынче стоят значительно выше, чем аппаратные. Но не теряем ли мы по дороге то ценное, что вернуть потом будет крайне тяжело?..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Лихорадка неясного генеза.
**

Группа: Пользователи
Сообщений: 81
Пол: Мужской
Реальное имя: Алексей

Репутация: -  0  +


Я тут надумал такую фишку, расширяемый компилятор. Расширяется он так:
в специальном фаиле описываеш конструкцию типа Расширенных Форм Бекуса-Наура и в какие конструкции асма они транслируются (имхо:это удобно ещё и тем что в общем не нужно хорошо знать асм полистал справочник и написал нужные конструкции,повторюсь это имхо). Мне кажется это довольно удобным.
Наверно криво рассказал smile.gif времени мало пишу из библиотеки biggrin.gif !


--------------------
Мир промышленного программирования полон избыточной сложности. В результате такие критерии, как простота, надежность, компактность программ и эффективность исполняемого кода, теперь заменяются на один главный критерий — скорость реализации идей. Приоритет времени разработки понятен: человеческие ресурсы нынче стоят значительно выше, чем аппаратные. Но не теряем ли мы по дороге то ценное, что вернуть потом будет крайне тяжело?..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


code warrior
****

Группа: Пользователи
Сообщений: 484
Пол: Мужской
Реальное имя: Славен

Репутация: -  8  +


Шаблоны, это, конечно хорошо.
Вот только язык реализации ты выбрал не совсем правильный.... Паскаль вообще не приспособлен к написанию парсеров и трансляторов. Хочешь увидеть ТО, на чём действительно можно красиво и быстро ниписать трансляторы - смотри РЕФАЛ: http://www.refal.net/ Кроме того сществует хороший функциональный язык - Standard ML - я его сейчас изучаю. К нему даже прилагается yacc и lex - генераторы парсеров.


--------------------
ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской
Реальное имя: Иван Шихалев

Репутация: -  0  +


> К нему даже прилагается yacc и lex - генераторы парсеров.

Для Turbo Pascal'я и FPC тоже есть.


--------------------
------------
Иван Шихалев
http://freepascal.ru/
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Гость






2hardcase:
Я конечно почитаю про Refal и Standard ML,возможно они подходят куда больше Паскаля, но мне кажеся, что паскаль хорошо укладывается в БНФ (в оличии от Си). И самое главное почему я выбрал Паскаль (конечно не гооворя,что другие языки (почти) не знаю), я хочу сделать компилятор Паскаля который может сам себя компилировать. Для старта я решил писать свой компилятор на FPC(но только с полной совместимостью с ТР7).
Цитата
> К нему даже прилагается yacc и lex - генераторы парсеров.

Для Turbo Pascal'я и FPC тоже есть.

Вот,тем более.

Зы:Недавно прочитал где-то, что Вирт первую версию Паскаля написал на нём же, фишка заключается в том что трансляцию в асм-код он провёл вручную.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Лихорадка неясного генеза.
**

Группа: Пользователи
Сообщений: 81
Пол: Мужской
Реальное имя: Алексей

Репутация: -  0  +


Извеняюсь, забыл залогиниться.


--------------------
Мир промышленного программирования полон избыточной сложности. В результате такие критерии, как простота, надежность, компактность программ и эффективность исполняемого кода, теперь заменяются на один главный критерий — скорость реализации идей. Приоритет времени разработки понятен: человеческие ресурсы нынче стоят значительно выше, чем аппаратные. Но не теряем ли мы по дороге то ценное, что вернуть потом будет крайне тяжело?..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


code warrior
****

Группа: Пользователи
Сообщений: 484
Пол: Мужской
Реальное имя: Славен

Репутация: -  8  +


Вообще-то, Вирт не в асм транслировал, - в P-код, хотя суть от этого не меняется.

2Иван Шихалёв. А ты видел, во ЧТО они транслируют? Парсер для Паскаля на SML занимает гораздо меньше места, чем мой LexParser, который только и умеет, что строку на терминальные символы разбивать (с хэшированием и прочими причендалами).

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


--------------------
ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Лихорадка неясного генеза.
**

Группа: Пользователи
Сообщений: 81
Пол: Мужской
Реальное имя: Алексей

Репутация: -  0  +


Цитата
Вообще-то, Вирт не в асм транслировал, - в P-код, хотя суть от этого не меняется

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


--------------------
Мир промышленного программирования полон избыточной сложности. В результате такие критерии, как простота, надежность, компактность программ и эффективность исполняемого кода, теперь заменяются на один главный критерий — скорость реализации идей. Приоритет времени разработки понятен: человеческие ресурсы нынче стоят значительно выше, чем аппаратные. Но не теряем ли мы по дороге то ценное, что вернуть потом будет крайне тяжело?..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской
Реальное имя: Иван Шихалев

Репутация: -  0  +


Цитата(hardcase @ 22.03.2006 22:52) *

2Иван Шихалёв. А ты видел, во ЧТО они транслируют? Парсер для Паскаля на SML занимает гораздо меньше места, чем мой LexParser, который только и умеет, что строку на терминальные символы разбивать (с хэшированием и прочими причендалами).

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

В рабочий код они транслируют. Я всего лишь заметил, что Lex и Yacc для Паскаля есть. Вид автоматически генерируемого кода редко бывает красивым.

Что касается трансляторов на процедурных языках, то внутренности FPC мне лично кажутся вполне красивыми (правда, только со второй версии). Впрочем, согласен, что на специализированных языках решение как правило более изящно, чем на универсальных. Но это верно для всех задач, а не только для трансляторов.


--------------------
------------
Иван Шихалев
http://freepascal.ru/
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Лихорадка неясного генеза.
**

Группа: Пользователи
Сообщений: 81
Пол: Мужской
Реальное имя: Алексей

Репутация: -  0  +


Цитата
> К нему даже прилагается yacc и lex - генераторы парсеров.

Для Turbo Pascal'я и FPC тоже есть.

Цитата
Я всего лишь заметил, что Lex и Yacc для Паскаля есть.

А линки не подбросите?


--------------------
Мир промышленного программирования полон избыточной сложности. В результате такие критерии, как простота, надежность, компактность программ и эффективность исполняемого кода, теперь заменяются на один главный критерий — скорость реализации идей. Приоритет времени разработки понятен: человеческие ресурсы нынче стоят значительно выше, чем аппаратные. Но не теряем ли мы по дороге то ценное, что вернуть потом будет крайне тяжело?..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской
Реальное имя: Иван Шихалев

Репутация: -  0  +


Цитата(Dr.Bugy @ 26.03.2006 3:31) *

А линки не подбросите?

В составе дистрибутива FPC они есть (в исходниках). Отдельно эти утилиты можно поискать на ftp://ftp.freepascal.org/ или ftp://ftp.chg.ru/


--------------------
------------
Иван Шихалев
http://freepascal.ru/
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 2.05.2024 23:04
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name