![]() |
|
Модераторы: 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. |
|||
|
||||
| ElKa |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 1.2.2006 Репутация: 2 Всего: 4 |
deleted
Это сообщение отредактировал(а) ElKa - 17.10.2008, 17:01 |
|||
|
||||
| ElKa |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 1.2.2006 Репутация: 2 Всего: 4 |
ладно.. пока без помощи обошлась.. первые две фазы готовы..
входящий код разлагается, анализируется, выстраивается в виде дерева и пробегается паттерном VISITOR visit() пока только выдает имена узлов на экран внизу прикрепляю что получилось.. может пригодится кому-нибудь для просмотра нужен JavaCC Eclipse Plugin теперь генератор кода надо написать неужели здесь никто не разрабатывал трансляторы? почему нет реакции на вопросы? или надо в другой подфорум обращаться? LSD, а может его конвертером назвать? Это сообщение отредактировал(а) ElKa - 17.10.2008, 17:01 |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Это ты лучше у научрука спроси, если он не первый год преподает, то он лучше должен знать как грамотно и звучно назвать работу
Это все же достаточно специализированная задача. Я например последний раз этим занимался в институте, уже успел все забыть. В реальности с этим сталкиваться не пришлось. На форуме знаю только пару человек которые этим занимаются, но они не Java-исты. Если хочешь могу перенести в "Разные вопросы". Да и пока у тебя самой неплохо получается -------------------- 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,
в том-то и дело, что руководитель формальными языками занимается, а не разработкой трансляторов.. так что он сам не знает... предлагает назвать переводчиком.. но мне не нравится а топик пусть пока тут повисит.. потом закрою и буду открывать темы для конкретных вопросов, если возникнут.. |
|||
|
||||
| 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 |
тестовую программку написала.. кое-что переводит
теперь начну для всего языка писать по тому же принципу Это сообщение отредактировал(а) ElKa - 17.10.2008, 17:02 |
|||
|
||||
![]()
|
| Правила форума "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. |