![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| ElKa |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 1.2.2006 Репутация: 2 Всего: 4 |
суть проблемы
- существующие языки спецификации C S P и Object-Z были объединены в язык C S P-O Z для моделирования более сложных систем - для C S P есть модел-чекер F D P, для OZ ничего подобного нет, поскольку там используются бесконечные типы данных, напр. N, и соответственно множество возможных состояний тоже бесконечно, а модел-чекеры работают только с конечными - а проверить модели в C S P-O Z все-таки очень хочется и поэтому... - для OZ-части спецификации вводятся разные ограничения для типов данных и т д., чтобы подогнать его под требования модел-чекера - рисуются эти модели сейчас в LaTex, а потом вручную переписываются в код, понятный модел-чекеру задача автоматизировать процесс перевода из tex-формата в csp-формат в общем транслятор надо написать на java в аттачментe примитивнейший пример tex-файл pdf-файл с моделью csp-файл для модел-чекера (за корректность пока не ручаюсь, но что-то в этом роде должно получиться) пояснение в данном примере main - это C S P-часть, которая описывает терминирующий процесс, а две пустые схемы внизу - это O Z-часть в spec1.csp вся отсутствующая информация представлена пустыми множествами в конце csp-файла есть часть, в которой O Z представляется как C S P-процесс и вся спецификация как два параллельных процесса (это стандартная часть) просьба подскажите мне, пожалуйста, план действий и вообще хорошо бы было, если бы кто-нибудь иногда контролировал меня, чтобы я не забрела куда не надо и не теряла время а то я уже и с javacc начала разбираться и с Antlr и со всем подряд... Это сообщение отредактировал(а) ElKa - 17.10.2008, 17:00 |
|||
|
||||
| ElKa |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 1.2.2006 Репутация: 2 Всего: 4 |
я так понимаю, что работа делится на три фазы
- лексический анализ - синтаксический анализ - генерирование исходящего кода можно ли использовать в данном случае уже существующие лексеры и javacc? |
|||
|
||||
| v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: 8 Всего: 56 |
интересная задачка
поповоду : я могу ошибаться, так как с такими тулзами не сталкивался , но то что они могут тебе не подходит , а могут они только преобразовывать что - то в Java (C++ / Ruby / Python ... ) а тебе надо "Что - то" преобразовать в "Что - то" . И начать надо как по мне со спецификации обоих форматов : установить ключевые выражения в каждом из них и провести между ними связи. Когда это будет сделано , можно переходить к реализации данных "связей". |
|||
|
||||
| ElKa |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 1.2.2006 Репутация: 2 Всего: 4 |
v2v,
я пока еще с javacc не разобралась, но мне показалось, что он для любых языков парсеры генерирует, только надо грамматику языка задать очень надеюсь, что это так |
|||
|
||||
| v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: 8 Всего: 56 |
правильно и преобразовывает это в *.java , а тебе надо в *.csp , как я понял.
|
|||
|
||||
| ElKa |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 1.2.2006 Репутация: 2 Всего: 4 |
на java создается парсер, который разбивает входящий код на составные части
потом это можно в виде дерева представить а уже потом перевести всю эту конструкцию в csp-код генератор кода я уже сама должна буду написать а пока меня интересует, насколько можно анализ автоматизировать, есть ли уже готовые инструменты для этого? |
|||
|
||||
| Aikus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 29.11.2007 Репутация: нет Всего: 1 |
||||
|
||||
| alexadr |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 25.9.2006 Репутация: 4 Всего: 4 |
Если не ошибаюсь, - у Idea есть по ентой теме плагины, в которых все енто можно решить, т.е. задав две граматики и правила, - транслировать код с одного языка в другой.
|
|||
|
||||
| serger |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 19.6.2007 Где: Ижевск Репутация: 1 Всего: 5 |
Функциональное программирование?!
Ступил.. "Language Oriented Programming" "INTENTIONAL PROGRAMMING" и вот... http://exceeder.livejournal.com/96692.html Это сообщение отредактировал(а) serger - 21.4.2008, 15:24 -------------------- упс! |
|||
|
||||
| ElKa |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 1.2.2006 Репутация: 2 Всего: 4 |
пользоваться придется JavaCC.. моя задача упрощается тем, что можно для начала ограничиться подязыком CSP-OZ
сейчас размышляю над грамматикой исходного языка, как ее задавать ведь код будет в tex-формате т.е. с командами LaTexa |
|||
|
||||
| ElKa |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 1.2.2006 Репутация: 2 Всего: 4 |
как вы думаете, корректно ли назвать такой переводчик компилятором?
|
|||
|
||||
| ElKa |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 1.2.2006 Репутация: 2 Всего: 4 |
так какое определение больше подходит: компилятор, транслятор или переводчик?
|
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Транслятор. Компилятором обычно называют транслятор в язык машинных кодов.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| ElKa |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 1.2.2006 Репутация: 2 Всего: 4 |
а я думала, что компилятор - это транслятор, который переводит из одного кода в другой.. и неважно в машинный или нет
|
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Это как раз транслятор.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |