Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 20:01

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: YACC
СообщениеДобавлено: Пт июн 26, 2009 19:11 
Не в сети

Зарегистрирован: Вс июн 21, 2009 20:49
Сообщения: 111
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Подскажите пожалуйста, есть ли для Форта средство аналогичное YACC?
В идеале хотелось бы брать стандартные BNF таблички и получать программу на Форте, но можно и как-то по-другому.
В любом случае обязательно чтобы был достаточно хорошо формализуемый механизм прямого преобразования конструкций типа BNF в входное представление данного парсера.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт июн 26, 2009 19:38 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Есть с2forth и ещё что-то подобное, поскольку YACC выдаёт исходник на С - то, если нет принципиальных трудностей - просто ещё один шаг ...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт июн 26, 2009 20:51 
Не в сети

Зарегистрирован: Пт фев 20, 2009 03:50
Сообщения: 20
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Есть в природе Grey. От Anton Ertl, входит в комплект gforth, отдельно можно найти там.

Извините, навскидку не помню, но какой-то британец довел Грэй до более юзабельного вида.
Если погуглить Grey AND Forth AND parser - найдется.

П.С. Грэй4 под спф 4.14 не работал, насчет Грэй5+спф поновее - не знаю :(


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт июн 26, 2009 21:50 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
BNF преоборазование было в пакете СПФа.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн июн 29, 2009 02:57 
Не в сети

Зарегистрирован: Пт фев 20, 2009 03:50
Сообщения: 20
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Извините, очепятка вышла: парсер все-таки правильно называется Gray, а не Grey :(

И тулзы к нему лежат вот здесь http://home.freeuk.com/meboulton/forth/home.html

К сожалению, не знаю Вашей задачи, и еще чего-нибудь полезного сказать не могу.
Только один "измышлизм" добавлю: прежде чем прикручивать парсер, убедитесь, что он _действительно_ нужен.

Если БНФка описывает нечто, где лексемы ограничены разделителями как таковыми(а лучше пробелами;) ) , а не "завершением слова, состоящего из букв и цифр", то есть большие шансы на то, что написать на Форте синтаксические конструкции может оказаться проще и эффективнее любого парсера.
Если это не так, можно попробовать предварительно прогнать поток, определенный этим самым БНФом через sed,
делая замены вроде '};' ==> '} ; ' или 'aaa,bbbb' ==> 'aaaa , bbbb'.
Если БНФ представляет собой Паскаль в чистом виде - тогда однозначно парсер как торжество грубой силы ;( .
Ну, а если парсер предназначался в качестве мега-инструмента для решения "вечных проблем", то лучший рецепт - поспать
хотя бы 8 часов, на форумы не ходить, читать Броуди: проблема сама ликвидируется:).


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн июн 29, 2009 07:26 
Не в сети
Moderator
Moderator

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
izvr писал(а):
Извините, очепятка вышла: парсер все-таки правильно называется Gray, а не Grey :(

И тулзы к нему лежат вот здесь http://home.freeuk.com/meboulton/forth/home.html


Перенаправление на Grace


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн июн 29, 2009 17:21 
Не в сети

Зарегистрирован: Вс июн 21, 2009 20:49
Сообщения: 111
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Отвечая на вопросы: да, действительно, есть готовые отлаженные проекты, обычно на Си (чаще всего на Си, но не всегда), работающие по принципу DSL (Domain Specific Language), и там грамматики далеко не XML, а чего-то именно уровня анализатора языка Си.
Соответственно, имея нейтивный фортовский инструмент, работающий с BNF, предполагаю быстро эти проекты переводить на Форт.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн июн 29, 2009 18:32 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
simne писал(а):
Соответственно, имея нейтивный фортовский инструмент, работающий с BNF, предполагаю быстро эти проекты переводить на Форт.

боюсь, что это будет не очень удачное решение. Сишный код очень плохо перекладывается на Форт (идеалогические нестыковки). Я прекрасно понимаю, что не хочется "изобретать велосипеды", но я прекрасно представляю, что легче по-новому написать код на Форте, чем перенести готовое решение с Сей. Перенос Сишных решений на Форт будет проигрывать и в скорости, и в сложности, и в объеме и в надежности.
кстати, на тот же Лисп переносят сишные решения, или Пролог? ;)

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн июн 29, 2009 19:08 
Не в сети

Зарегистрирован: Вс июн 21, 2009 20:49
Сообщения: 111
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
mOleg писал(а):
Перенос Сишных решений на Форт будет проигрывать и в скорости, и в сложности, и в объеме и в надежности.


YACC это никак не "Сишное решение", хотя и используется обычно с Си-подобными императивныеми языками.

mOleg писал(а):
кстати, на тот же Лисп переносят сишные решения, или Пролог? ;)

Лисп можно использовать как угодно - он очень избыточен, но ввиду того что он мягко говоря небыстрый, обычно эти сишные решения подключают к нему как внешние библиотеки.
Если-же речь идет о переносе какого-то решения с Си на Лисп, то это обычно становится совершенно новым, сильно расширенным решением (вроде Emacs - "текстовый редактор - ОС").

Кстати, сейчас больше заметен обратный процесс: даже решения на COBOL, переносят на си-подобные языки (Java, etc) с XML-оберткой для декларативности.
С технологической точки зрения, это выглядит как параллельный слой на сишной технологии, который связан со старым движком через СУБД, и этот параллельный слой постепенно доводят до уровня почти полного повторения исходной функциональности системы а затем оставляют только сишную технологию.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн июн 29, 2009 19:17 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
simne писал(а):
YACC это никак не "Сишное решение", хотя и используется обычно с Си-подобными императивныеми языками.

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

simne писал(а):
Лисп можно использовать как угодно - он очень избыточен, но ввиду того что он мягко говоря небыстрый, обычно эти сишные решения подключают к нему как внешние библиотеки.

как внешние библиотеки сишные решения к форту подключаются ;) я же говорил о портировании исходного кода одного языка на другой.

simne писал(а):
Если-же речь идет о переносе какого-то решения с Си на Лисп, то это обычно становится совершенно новым, сильно расширенным решением (вроде Emacs - "текстовый редактор - ОС").

Форт не исключение. Код надо будет полностью перерабатывать, или будет ужас.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн июн 29, 2009 20:34 
Не в сети

Зарегистрирован: Вс июн 21, 2009 20:49
Сообщения: 111
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
mOleg писал(а):
как внешние библиотеки сишные решения к форту подключаются ;) я же говорил о портировании исходного кода одного языка на другой.


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

mOleg писал(а):
simne писал(а):
Если-же речь идет о переносе какого-то решения с Си на Лисп, то это обычно становится совершенно новым, сильно расширенным решением (вроде Emacs - "текстовый редактор - ОС").

Форт не исключение. Код надо будет полностью перерабатывать, или будет ужас.

Сейчас никого ужас не волнует :))
Дело в другом: народ в странах 1-го миллиарда рациональный до безобразия, и они берутся переносить проекты с одного языка на другой (точнее с одной платформы на другую), только когда этот перенос дает какое-то серьезное улучшение.
Например, некоторое время назад BSD-шники сделали клон CVS на Си (оригинал был на Ada), потому что до сих пор не существует Ada в исходниках с лицензией BSD (коммерческую Ada понятное дело в BSD встраивать не хотят, и GPL тоже не любят).
Аналогично, делаются всякие разные парсеры XML нейтивные на Ruby, Python, из соображений чтобы не нужно было для установки решения тянуть с собой еще и компилятор Си.
Лисп вроде на хостингах не ставят (а только на выделенных серваках), и как инструмент админа не применяется, поэтому и нет проблемы с использованием сишных либ.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт июн 30, 2009 00:32 
Не в сети
Аватара пользователя

Зарегистрирован: Чт апр 26, 2007 21:09
Сообщения: 303
Благодарил (а): 12 раз.
Поблагодарили: 10 раз.
simne писал(а):
Лисп ... - ... очень избыточен.

Я скорблю по Вашим бесплодно проведённым временам в стенах Вашей альма-матер, юноша.
А равно и - по тщетным усилиям Ваших учителей и преподавателей.
ГЛУБОКО скорблю...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт июн 30, 2009 17:11 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
simne писал(а):
Сейчас никого ужас не волнует

в смысле народу пофигу, будет ли оно работать надежно, будет ли возможность хотя бы мелких правок, будет ли обеспечена необходимая скорость работы и т.п?

Вобщем ваше мнение мне понятно :)

Wlad писал(а):
simne писал(а):Лисп ... - ... очень избыточен.
Я скорблю по Вашим бесплодно проведённым временам в стенах Вашей альма-матер, юноша.

кстати да, Лисп нисколько не избыточен, он синтаксически неудобен (уж больно много скобок) и требует другого подхода, нежели классический Си-Паскаль-Бейсик.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт июн 30, 2009 17:53 
Не в сети

Зарегистрирован: Пн ноя 05, 2007 13:54
Сообщения: 144
Благодарил (а): 0 раз.
Поблагодарили: 13 раз.
Wlad писал(а):
simne писал(а):
Лисп ... - ... очень избыточен.

Я скорблю по Вашим бесплодно проведённым временам в стенах Вашей альма-матер, юноша.
А равно и - по тщетным усилиям Ваших учителей и преподавателей.
ГЛУБОКО скорблю...


Язык Lisp в своем современном воплощении действительно громоздок и избыточен. Это промышленный язык, который определяется стандартом Common Lisp. Менее популярный "академический" диалект Lisp'а Scheme(образца R5RS), напротив, является образцом элегантности и лаконичности для архитектора языка.

P.S. Я, со своей стороны, "ГЛУБОКО скорблю" о том, что хамство(которое нередко соседствует с невежеством) на этом форуме нисколько не порицается.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт июн 30, 2009 17:58 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
true-grue писал(а):
Язык Lisp в своем современном воплощении действительно громоздок и избыточен.

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

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB