Forth
http://fforum.winglion.ru/

oForth
http://fforum.winglion.ru/viewtopic.php?f=2&t=3171
Страница 1 из 2

Автор:  _KROL [ Чт апр 19, 2018 14:37 ]
Заголовок сообщения:  oForth

Всем привет! Давно сюда не заходил. То дела, то ещё что... (счас вообще болею ): )
С недавнего времени опять вспомнил про SmallTalk и пытаюсь его понять, но непонимаю малость интерфейс и ещё кое-чего (то, чего ещё не успел изучить).
Вспомнил и очень странный проект: http://www.oforth.com - смесь SmallTalk и Forth. Как по мне, так очень даже интересная и гибкая вещь (со вчерашнего до 10 главы английской документации дошёл!).
Так вот, мне интересно, как оцениваете вы это чудо?

Автор:  _KROL [ Пт апр 20, 2018 12:46 ]
Заголовок сообщения:  Re: oForth

Почему, когда я вспоминаю ООП, все молчат? :x Или хотите сказать, что словарная статья немного не напоминает класс? Не уж-то этот проект вам совсем не интересен?

Автор:  Hishnik [ Пт апр 20, 2018 12:54 ]
Заголовок сообщения:  Re: oForth

Скорее словарь напоминает класс - в него инкапсулированы слова, он наследует слова родителя, при совпадении имен вызываемое слово зависит от контекста поиска (полиморфизм).

Однако же для серьезной работы важно как раз не то, какие еще интересные вещи реализованы в том или ином диалекте, а куда вообще авторы этого диалекта идут. Если с ними в глобальном смысле не по пути, то временное совпадение интересов ни к чему в итоге не приведет.

Автор:  _KROL [ Пт апр 20, 2018 12:57 ]
Заголовок сообщения:  Re: oForth

Просто, как я понял, мне уже надоело создавать велосипед (свой Форт). Кому он будет нужен?.. Вот и интересуюсь сторонними сборками, лучшего качества)

Автор:  _KROL [ Пт апр 20, 2018 12:59 ]
Заголовок сообщения:  Re: oForth

+ Там много чего поддерживается. Вот что я насчитал:
* Потоки
* многозадачность
* JSON (здесь недавно упоминался)
* tcp
... (и ещё кое-что) ...

Автор:  _KROL [ Пт апр 20, 2018 13:01 ]
Заголовок сообщения:  Re: oForth

...и некоторая совместимость с AnsForth

Автор:  Hishnik [ Пт апр 20, 2018 13:12 ]
Заголовок сообщения:  Re: oForth

_KROL писал(а):
Просто, как я понял, мне уже надоело создавать велосипед (свой Форт). Кому он будет нужен?.. Вот и интересуюсь сторонними сборками, лучшего качества)

Это в целом нормальный и естественный процесс :) Но в целом позиция "сделать Форт и продавать" показала свою нежизнеспособность. Сколько уже жаловались на "отсутствие рынка форт-программ", сколько было попыток организовать продажи или хотя бы просто распространение путем добавления IDE, ООП, оптимизаторов, библиотек, потоков и прочего. Все впустую. Случайно? Нет.

Ситуация становится более понимаемой, если принять, что Форт - это не продукт на продажу, а внутренний инструмент, разрабатываемый в рамках большого проекта. Для суммирования элементов массива никто же не полезет в интернет искать "сумматоры элементов массива, с ООП, потоками и оптимизацией". Задача простая и решается на месте, на нужном в данный момент языке и для тех массивов, которые действительно надо посчитать. Чем тут принципиально отличается Форт? Это просто несколько тысяч строк кода, которые приносят в проект определенные функциональные возможности. Попытки написать стандарт разбивались о то, что нюансы возможностей Форта все видят по-своему, и это совершенно нормально. Если разобраться, то чем же Форт еще интересен, как не возможностью реализовать собственное поведение того ключевого куска кода, который нужен в проекте. Так что Форт ближе к middleware, если даже не к прикладной программе.

Автор:  _KROL [ Пт апр 20, 2018 13:23 ]
Заголовок сообщения:  Re: oForth

Ох, чем больше пытаюсь понять документацию, тем больше кажется, что это микро-ОС с уклоном в Форт!
Hishnik, про продажу своих продуктов (как и Форта вообще) я ничего и не говорил)) И вообще, я ещё учусь, не забывай.

Автор:  Hishnik [ Пт апр 20, 2018 13:43 ]
Заголовок сообщения:  Re: oForth

_KROL писал(а):
Hishnik, про продажу своих продуктов (как и Форта вообще) я ничего и не говорил)) И вообще, я ещё учусь, не забывай.

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

Автор:  _KROL [ Пт апр 20, 2018 13:55 ]
Заголовок сообщения:  Re: oForth

Для меня сейчас проект (для универа) это создание базы данных... Данный язык, как я осознал, очень даже подходит для её простой реализации. А так, пишу на Си.
P.s. Прочитал всё. Что-то я зря oForth назвал смесью со SmallTalk. Синтаксис конечно чем-то похож, но сообщений (между объектами) не наблюдается.
P.p.s. В манулке (v.1.0.0) номера страниц чуть не соответствуют настоящим номерам + вроде нашлась пара лишних страниц (одна так точно).

Автор:  Victor__v [ Пт апр 20, 2018 21:10 ]
Заголовок сообщения:  Re: oForth

_KROL писал(а):
* Потоки
* многозадачность


Так это есть и у фортов обитателей этого форума.
Кварк исключая.

По БД
А насколько простая требуется БД?
Просто в моём понимании это нечто умеющие переопределять типы столбцов с поддержкой транзъацкий.

Автор:  _KROL [ Пт апр 20, 2018 21:27 ]
Заголовок сообщения:  Re: oForth

Вообще примерно такое:
Код:
\ 03.04.2018 _KROL
\ KaDB project
\ Copyright [C] 2018 _KROL krolmail@list.ru
\ Исходная постановка задачи и входные ограничения

9) База данных содержит информацию о заказанных номерах в гостинице:
  * номер (целое  трехзначное  число),
  * с какой  и  по  какую  даты (в  формате  дд.мм.гггг),
  * ФИО постояльца (строка 30  символов).
Дополнительно, программа должна формировать отчет за определенный
промежуток времени по определенному номеру в гостинице.

Из лабараторной работы No.4 следует, что:
  * программа поддерживает два способа вывода:
  1. формат "поле: значение"
  2. табличный
  * программа содержит меню, для выбора нужной операции

Из лабараторной работы No.5 следует, что:
  * программа должна работать с файлами: создание, загрузка, сохрание БД.
  ! остаётся неизвестным точный смысл работы и реализации функции remove_DB()

Из лабараторной работы No.6 следует, что:
  * решение должно быть разделено на соответствующие смысловые модули
  * решение должно содержать модульную схему

Сторонние ограничения:
  * проект без ООП
  * базу данных нельзя реализовывать с помощью списков
Только я хочу это позже усовршенстовать, когда доделаю...
P.s. Преподователь занят, поэтому ему ещё ничего не показывал) Пытаюсь оформлять примерно как mOleg, только лучше. Однако, пользовательский интерфейс скорее-всего будет не такой, как тут описано ;)
P.p.s. Условие задания лабы 5:
Код:
Дополнить проект, созданный в предыдущей лабораторной работе, следующими
функциями и добавить новые пункты в меню программы:
1. Функция new_DB(), в которой будет создаваться новый файл базы данных и открываться для
записи. Функция должна возвращать объект потока ввода для нового файла.
2. Функция remove_DB(), удаляющая файл по названию. В функции должна быть реализована
обработка ошибок.
3. Функция clear(), которая будет очищать динамическую память, выделенную для структур
базы данных.
4. Функция save_DB(), которая будет сохранять данные из динамического массива структур в
указанный файл.
5. Функция load_DB(), которая будет выгружать данные из указанного файла в динамический
массив структур.

Автор:  _KROL [ Пт апр 20, 2018 21:29 ]
Заголовок сообщения:  Re: oForth

Цитата:
* базу данных нельзя реализовывать с помощью списков
Это я решил обойти так, что по define переключаю на компиляцию нужной реализации (динамический массив или список структур).
P.s. Простите, может и не в тему, Виктор попросил.

Автор:  Victor__v [ Сб апр 21, 2018 09:18 ]
Заголовок сообщения:  Re: oForth

Так блин списками гибче и тип можно переопределить относительно легко.
Проще, но зато надёжней.

Автор:  F-MAP [ Сб апр 21, 2018 22:18 ]
Заголовок сообщения:  Re: oForth

Victor__v писал(а):
Так блин списками гибче и тип можно переопределить относительно легко.
Проще, но зато надёжней.

Так сейчас многие БД в структурах поддерживают переменную длину поля, как же там без списков обойтись..

Страница 1 из 2 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/