Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вт мар 19, 2024 07:51

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 164 ]  На страницу 1, 2, 3, 4, 5 ... 11  След.
Автор Сообщение
 Заголовок сообщения: ПЕРЛ против ФОРТ
СообщениеДобавлено: Вс фев 15, 2009 23:08 
Не в сети
Аватара пользователя

Зарегистрирован: Вт ноя 06, 2007 21:23
Сообщения: 227
Откуда: Екатеринбург
Благодарил (а): 4 раз.
Поблагодарили: 7 раз.
Автор: Piter J. Knaggs
Дата публикации: 1997
оригинал статьи взят c http://www.rigwit.co.uk/papers/perl.html
Перевел: Alexander при участии mOleg

ПЕРЛ против ФОРТ
Питер Джей Кнаггс
Вычислительные и информационные системы,
Университет Пэйзли, Шотландия

Аннотация
PERL - язык сценариев, изначально разработанный для UNIX-систем, вобравший в себя ряд полезных утилит UNIX в гибкий интерпретируемый C-подобный язык. В последнее время PERL захватил мир UNIX и стал стандартным языком для Интернет-программирования (общий шлюзовой интерфейс или CGI).
В статье описаны некоторые из существенных преимуществ PERL и проведен анализ, какие уроки, возможно, может извлечь ФОРТ-сообщество от знакомства с этим языком программирования.

Краткий обзор
Для тех, кто едва знаком PERL (Practical Extraction and Report Language) – язык отчетов и извлечения данных; для тех, кому PERL отец родной - Pathologically Eclectic Rubbish Lister. А для минималистов PERL – бессмысленность в избыточности. (Wall, Christiansen, and Schwartz, 1996)
PERL был разработан Лари Волом как командный процессор для UNIX-систем. На протяжении нескольких лет Лари продолжал добавлять новые функциональности в PERL, по мере их необходимости. Начиная с четвертой версии, а сейчас уже пятая, язык программирования PERL превратился из утилиты по написанию сценариев в полноценный язык программирования, содержащий в себе множество утилит, которые так бесценны для UNIX-программистов (find, grep, sed, awk и т.д.).
Итак, какие же функциональные возможности PERL делают его очень полезным для программирования UNIX-систем и CGI в частности? Можно выделить пять:

Структуры данных
PERL предоставляет ряд весьма гибких и полезных структур данных. Первая структура – это списки. Весьма простые списки данных, доступ к которым производиться по индексу, как в простом массиве или кортеже. Однако также имеются операторы позволяющие рассматривать список как стек или очередь.
Вторая и возможно наиболее полезная структура – это хэш или ассоциативный массив. Это реляционная структура, где любой объект может быть использован как ключ к отношению, а также как значение, включая списки, другие хэш-объекты или простые данные. Это дает программисту возможность работы с реляционными базами данных.
Последняя структура ориентирована на поддержание изначальной роли PERL как языка отчетов. Эта структура, под названием форматирование (‘format’), позволяет программисту указать формат вывода данных, с привязкой определенных полей к переменным в программе. Для вывода данных в нужном формате используется команда WRITE. Система отслеживает число выведенных строк, страниц и т.д. Она даже позволяет использовать отдельный формат для заголовка страницы.

Объекты
Начиная с четвертой версии, появилась новая структура под названием пакет. Пакет был просто отдельной именованной областью весьма схожей с концепцией списка слов в ЯП ФОРТ. Но идея не была воспринята большинством пользователей и в пятой версии была реорганизована в полноценную объектную систему, дополненную определяющими интерфейсами, конструкторами, деструкторами и т.д. Одним словом в ООП.
Система предоставляет целую библиотеку предопределенных объектов. Объекты хранятся в виде исходных текстов и могут загружаться по требованию. Интересен факт, что огромное число библиотек предлагается сообществом использующим PERL. Все они хранятся на центральном FTP-архиве всеобъемлющей архивной сети PERL или говоря проще - на CPAN.

Регулярные выражения
Вероятно наиболее мощный аспект PERL – это манипуляции со строками. Первоначально они выполнялись через расширенный механизм регулярных выражений или систем поиска по шаблону. Регулярные выражения PERL основаны на стандартных регулярных выражениях UNIX, например, тех, что использует утилита grep, но расширяют систему в невероятно мощный анализатор строк.
Многие из поисковых машин в Интернете могут принимать в качестве строки поиска регулярное выражение на языке программирования PERL. Хотя следует отметить, что практика предоставления пользователю простого интерфейса запроса с его дальнейшей конвертацией в регулярное выражение PERL для внутренней обработки становится общей.
В JavaScript 1.2 был введен объект REGEX, а также объект STRING был расширен функциональностью для поддержки методов регулярных выражений. В частности вот что было введено:
    a) Поиск соответствия
    Попытка найти соответствие с помощью выражения m/(\d*)\w(\d*)\w(\d*)/ приведет к тому, что будут найдены все строки, содержащие по три числа разделенных одиночным пробелом. Скобки в выражении указывают на секции в регулярном выражении, которые необходимо запомнить. Секции будут скопированы в переменные под именами $1, $2, $3 соответственно.
    b) Замена
    Заменяет строку новым значением, отметим, что $-переменные доступны для значения на замену.
    Например, выражение s"bold\(([^\)]*)\)"<B>$1</B>" заменит любое вхождение bold(text) на <B>text</B>.
    c) Разбиение
    Позволяет получить список или массив строк, входящих в строку-источник, разделяя последнюю в соответствии с регулярным выражением. Пример программы:
    $str = "hello.this is:a test"
    @list = split(/.|,|:/,$str)
    Разобьет строку $str на "hello", "this is", и "a test". Разделение произойдет там, где встречается точка, запятая и двоеточие, как это и указано в регулярном выражении /.|,|:/. Переменная @list будет содержать три фрагмента в виде списка (массива, стека, очереди или кортежа, все зависит от того как вы с ней работаете).
Давая возможность для считывания одной строки, параграфа или целого файла в одну непрерывную строку и манипулирую ей, использую встроенные функции регулярных выражений, предоставляет очень быстрый и мощный механизм поиска/замены. Было доказано, что программа написанная на PERL, которая считывает весь файл в строку и выполняющая операцию поиска по шаблону - быстрее, чем использование эквивалентной UNIX-команды grep.

Взаимодействие с системой
Так как PERL изначально задумывался как командный процессор, он имеет механизм взаимодействия с операционной системой:
    • Команды могут быть выполнены, а их результат проанализирован. В случае если требуемая функциональность еще не включена в PERL, последний дает возможность вызвать внешнюю команду. Данные для команды, а также результат работы вызванной команды находится полностью под контролем программиста, таким образом программа может отвечать на сообщения от внешних программ.
    • Прерывание или реакция на событие – оба могут быть перехвачены. Специальные обработчики могут быть использованы для стандартных реакций на события (прерывания) простым назначением функции в специализированный массив.
    • Коммуникационный интерфейс легко доступен через стандартный механизм сокетов.
    • Многозадачность управляется стандартными функциями UNIX, известных как fork, kill и pipe. Все они интегрированы в базовую часть языка.

В дополнение к этим встроенным возможностям PERL также предлагает возможность связывания хэша с файлом базы данных, используя стандартную СУБД, и предоставляя доступ к данным в базе данных посредством хэша. Вследствие этого появилась новая команда DELETE, которая позволяет программисту удалить запись в хэше и тем самым удалить данные в базе данных.

Контроль исходных текстов
Лари Вол сохранил абсолютный контроль над развитием языка программирования PERL. Другие изобретают новые возможности, которые Лари включает или не включает в следующую реализацию на свое усмотрение. Это означает, что существует хорошо известная стандартная база для разработки приложений/библиотек.
Версия системы PERL, на которой выполняется программа, доступна программисту. Появилась специальная команда, позволяющая программисту указать для какой версии был разработан модуль. Например, если модуль использует операторы добавленные в версии 5.1, - он может просто добавить команду requires 5.1 в начало программы. Если эта команда выполняется в PERL 5.1, она вернет истинное значение, иначе будет выдан отчет об ошибке, что требуется версия PERL 5.1 или выше.

Уроки для ФОРТ-сообщества
Из вышесказанного видно, что существует ряд уроков, через которые ФОРТ-сообщество могло бы извлечь полезную информацию у сообщества PERL, а также путем изучения этого языка программирования. Уроки можно разбить на два класса: основные и дополнительные.

Основные уроки
Два основных урока ФОРТ-сообщество может вынести для себя из опыта PERL. Они оба хорошо известны, однако, их обозначение (наличие, признание) идет очень медленно и нет единой позиции.

Контроль исходных текстов
Стандарт на ФОРТ ISO 15145 очень хороший шаг, однако, он не дает гарантии на существование того или иного слова в словаре. Просто невозможно дать кому-нибудь текст сложной программы с ожиданием того, что она сразу же начнет работать без какого-либо указания на то в какой среде исполнения она должна выполняться. Этот факт отталкивает многих, кто пытается решить эту проблему.
Необходимо иметь некоторое централизованное хранилище библиотек кода, которые бы могли работать на различных ФОРТ-платформах. Банк исходных текстов кода записанный в ISO-стандарт – это только начало. Подобный банк потребовал бы организации и документирования, тем самым делая поиск и использование необходимой библиотеки более простым.
Централизованное хранилище требует наличие «библиотекаря». «Библиотекарь» может проверить качество модулей и более тщательно проверить сопроводительную документацию и на основании результатов проверки принять или отклонить модуль. Приняв модуль «библиотекарь» его можно классифицировать. Все модули должны поставляться либо как бесплатные, либо как оценочные.

Объекты
Многие люди пытались добавить ООП в ФОРТ, каждый разрабатывал свои собственные расширения. Пришло время, чтобы стандартизовать эти расширения. ООП захватило мир примерно 12 лет назад, возможно, что настало время, когда ФОРТ будет переизобретен, для того чтобы интегрировать объекты в ядро системы, чем хранить их как надстройку.

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

Гибкие структуры данных
Лари Вол выбрал две весьма полезных и очень гибких структур данных, называемые список и хэш. Они очень хорошо соотносятся с математическими определениями кортеж и отображение, и могут в следствие этого привести к простому и эффективному программированию.
Подобные структуры данных весьма просто реализовать при индивидуальном подходе. Вместо того чтобы каждый ФОРТ-программист разрабатывал свою версию объектов список и хэш, необходимо иметь некоторую общую библиотеку. Таким образом, потребуется только один или два программиста, которые будут сосредоточены на разработке этих объектов, а остальные члены сообщества будут просто использовать эти объекты.

Манипуляции со строками
Только получив по настоящему объектно-ориентированную ФОРТ-систему, будет возможно реализация типа «строка», который будет поддерживать нормальные функции: считывание строки, определение длины, подстрока, конкатенация, возврат символа в нужной позиции. Следуя примеру JavaScript/1.2, будет возможно расширить этот объект для подержания механизма регулярных выражений: соответствие, замена, разбиение. Это снабдить ФОРТ той же функциональстю, что и современные языки программирования.

Взаимодействие с системой
Путем введения ряда специальных объектов станет возможным для всех ФОРТ-систем предоставлять механизм доступа к базовой системе. Эти объекты должны будут быть определены тщательно для того чтобы посредством них обеспечить взаимодействие как с ОС большой системы (видимо мэйнфрейм), так и малой (видимо микроЭВМ). Дерево устройств указанное в системе с Boot Firmware (IEEE 1275-1994) – это образец того, как объектно-ориентированное мышление может предоставить такую возможность.

Заключение
Может ли ФОРТ-сообщество извлечь какие-либо уроки из современного развития и современных методов? Отметим, что многое ФОРТ-сообщество может извлечь, изучая современные методы развития. ФОРТ-сообщество насчитывает множество высокообразованных индивидуалистов, которые более чем способны понять эти рекомендации. К сожалению, половина из них слишком закопалась во внутренностях ФОРТ-систем, в то время, как другие полные индивидуалисты.
В 1983 ФОРТ был впереди своего времени (Rather, Colburn, and Moore 1993) и Forth Interest Group)рекламировавшая его, была на высоте. Оставшаяся часть мира программистов оценила его спустя пять лет. Сейчас прошли еще девять лет и весь мир ушел вперед, чего нельзя сказать о ФОРТ. В 1994 году появился ANS стандарт на ФОРТ, позднее ратифицированный как ISO-стандарт в 1997. Новый стандарт, не смотря на свою полезность, не способен развить язык - это может сделать только сообщество.
В 1994 году также появился стандарт IEEE Open Boot Firmware (IEEE 1275-1994), который, по крайней мере, чуть продвинул язык программирования. Если ФОРТ будет языком программирования будущего, то рано или поздно он все равно столкнется с современными системами, а также идеями программирования. Иначе, он просто будет еще одной интересной реликвией (артефактом).
Требуются, как бы, централизованные власти, которые будут проталкивать и развивать язык. FIG (Forth Interest Group – Группа интересующаяся ЯП ФОРТ) была скрыта за языком программирования многие годы, тем не менее слабые "подвижки" в развитии наблюдались.

Литература:
1. ANSI X3.215-1994 (1994, March). American National Standard for information systems: programming languages: Forth: ANSI/X3.215-1994. American National Standards Institute and Computer and Business Equipment Manufacturers Association. 1430 Broadway, New York, NY 10018, USA: American National Standards Institute. Approved March 24, 1994.
2. IEEE 1275-1994 (1994). IEEE Standard 1275-1994 - Standard for Boot (Initialization Configuration) Firmware: Core Requirements and Practices. IEEE. IEEE 1275 Technical Committee.
3. ISO 15145:1997 (1997, March). Information technology - Programming languages - Forth (First ed.). International Standards Organisation. ISO/IEC 15145:1997.
4. Rather, E. D., D. R. Colburn, and C. H. Moore (1993, March). The evolution of Forth. In ACM (Ed.), ACM SIGPLAN HOPL-II. 2nd ACM SIGPLAN History of Programming Languages Conference, Volume 28(3) of ACM SIG-PLAN Notices, New York, NY, USA, pp. 177-199. ACM Press.
5. Wall, L., T. Christiansen, and R. L. Schwartz (1996). Programming Perl (Second ed.). O'Reilly and Associates, Inc.


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Alexander писал(а):
Дата публикации: 1997


Alexander писал(а):
Многие люди пытались добавить ООП в ФОРТ, каждый разрабатывал свои собственные расширения. Пришло время, чтобы стандартизовать эти расширения. ООП захватило мир примерно 12 лет назад, возможно, что настало время, когда ФОРТ будет переизобретен, для того чтобы интегрировать объекты в ядро системы, чем хранить их как надстройку.

За прошедшее с момента публикации время ажиотаж вокруг ООП несколько поутих.
Alexander писал(а):
PERL предоставляет ряд весьма гибких и полезных структур данных. Первая структура – это списки. Весьма простые списки данных, доступ к которым производиться по индексу, как в простом массиве или кортеже. Однако также имеются операторы позволяющие рассматривать список как стек или очередь.
Вторая и возможно наиболее полезная структура – это хэш или ассоциативный массив. Это реляционная структура, где любой объект может быть использован как ключ к отношению, а также как значение, включая списки, другие хэш-объекты или простые данные. Это дает программисту возможность работы с реляционными базами данных.
(и далее...)
Класс! Для сравнения можно посмотреть на современные претензии к Форту... :)
Alexander писал(а):
Требуются, как бы, централизованные власти, которые будут проталкивать и развивать язык.

Опять-таки, 10+ лет все требуются и требуются... :))


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

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

вообще очень интересный вопрос, как позиционировать Форт.
ведь получается, что можно стандартизировать\фиксировать либо одну из веток языка (собственно это касается всех языков программирования), либо вообще махнуть рукой.
Достаточно тяжело определиться с вопросом, о том, какого же уровня язык форт (низкоуровневый, среднеуровневый(аки Си), либо высокоуровневый) - если задуматься, получается, что форт очень близок к железу, но позволяет создвать очень мощные абстракции, при этом основная работа идет на "среднем уровне".
Кроме того, Форт лежит достаточно близко я естественному языку, собственно большинство проблем Форта присущи естественным языкам (например очень тяжелое понимание длинных предложений), поэтому даже называть его языком программирования я отказываюсь :) Форт - это языковая среда программирования (понятно, имхо).

Получается, что Форт занимает одновременно много ниш и уровней, при этом целиком не находясь ни в одной(одном) из них :)

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


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

Зарегистрирован: Чт апр 26, 2007 21:09
Сообщения: 303
Благодарил (а): 12 раз.
Поблагодарили: 10 раз.
А по моему, так - ваще полный бред...
Насколько у меня формируется впечатление, так ФОРТ - ваще ВНЕ привычных и сложившихся классификаций...
Я вот сам сейчас копаюсь и офигеваю, как в него всего много влито - тока "увидь" свою тему под нужным углом зрения, а уж развивать её - таки ФОРТ прямо заточен!... Тут тебе и всякоразные модели ООП и создание описателей интерфейсов нового поколения (динамика через описание синтаксиса взаимодействия) и функциональное программирование...
Уж-ник дыхание в зобу сперает!
ЗЫ тока бы времени на всё хватало...


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

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
Стандарт на ФОРТ ISO 15145 очень хороший шаг, однако, он не дает гарантии на существование того или иного слова в словаре. Просто невозможно дать кому-нибудь текст сложной программы с ожиданием того, что она сразу же начнет работать без какого-либо указания на то в какой среде исполнения она должна выполняться. Этот факт отталкивает многих, кто пытается решить эту проблему.
Ну, а когда я говорю это Хищнику, он не воспринимает

_________________
понимаю некоторую бестолковость некоторых вопросов


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
вопрос писал(а):
Цитата:
Стандарт на ФОРТ ISO 15145 очень хороший шаг, однако, он не дает гарантии на существование того или иного слова в словаре. Просто невозможно дать кому-нибудь текст сложной программы с ожиданием того, что она сразу же начнет работать без какого-либо указания на то в какой среде исполнения она должна выполняться. Этот факт отталкивает многих, кто пытается решить эту проблему.

Ну, а когда я говорю это Хищнику, он не воспринимает


А как я это должен "воспринять"? Сделать два раза "ку", заткнуться, и побежать читать, что мне Мудрые Дяди понаписали? :)


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

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

Но право Хищника считать так. как он считает :D

_________________
понимаю некоторую бестолковость некоторых вопросов


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
вопрос писал(а):
Ну скажем, когда я говорю, что диалект (языка) - не совсем хорошо

Не совсем хорошо для кого? Для меня? "Не смешите меня, мне смеяться нельзя" (с) Хомяк (который ходил за стручками). Получается перефразированный анекдот про курящего владельца небоскреба: "- У вас форт стандартный? - Нет. - А если бы был стандартный, у вас была бы куча проектов! - А у вас форт стандартный? - Да! - А у вас есть куча проектов? - Нет. - А у меня есть - вон они"
Для пользователей форт-систем? Ну тут увы, незаработанные кем-то деньги на моем ненаписанном стандартном трансляторе - это уж никак не может быть поставлено мне в вину. Для авторов ANSI/ISO и прочих бумаг? Как там Wlad правильно пишет - "У России - только четыре союзника: её Армия, Флот и Авиация с Космическими Войсками." С учетом того, что я родился, вырос и получил образование в городе, усеянном предприятиями ВПК... ну-ну, ... кому-то Европа, может быть, и пример для подражания, а для меня прежде всего геополитический соперник России.


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

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

_________________
понимаю некоторую бестолковость некоторых вопросов


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
У меня не Форт развит, потому что фирма работает, а фирма работает, потому что Форт развит. Так что совершенно необязательно искать удобную позицию для старта - можно просто бежать вперед. Мнения других людей при этом очень интересны и познавательны, но могут быть только пищей для собственных размышлений, а не руководством к действию. Тем более статья 12-летней давности... откуда там? "Университет Пэйзли?". У меня сильные сомнения, что рядовой российский фортер настолько сиволап, что не сделает ничего даже близко походящего на европейские форт-проекты. Тем более, как бы сказать, до Оксфорда с Кембриджем там далековато.


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

Зарегистрирован: Вт ноя 06, 2007 21:23
Сообщения: 227
Откуда: Екатеринбург
Благодарил (а): 4 раз.
Поблагодарили: 7 раз.
Переводя эту статью, я с трудом сдерживался и сдерживаюсь от критики в сторону товарищей превозносящих перл,
всякие там С-диез (Ля-бемоль) и прочие ООПЫ ;)

По поводу ООП:
Что дает ООП - практически ничего, если вы работаете с микроконтроллером.
Возможно кто-то возразить, но чем плоха просто агрегация данных (структура), без привязвания области действия функции к той или иной объектно-ориентированной структуре. Ну прсото иденификатор объекта подсуньте прежде, любой функции общего вида, а оттуда уже прыгайте к кому надо.

По поводу контроля исходников для той или иной версии:
Это только компиляторы, которые уже заточены подвержены такой болезни,
а ФОРТ как язык расширяемый во время своей работы в этом не нуждается всегда можно проверить наличе тошо или иного слова.

Про взаимодействие с системой:
ФОРТ и есть система. А для уровня "железки" ФОРТ способен обеспечить полнофункциональную ОС.
Взаимодействие в кластере???
Просто по накатанному скользить легче, чем идти по шершавому посыпаному песком снегу.

Про структуры данных:
Не знаю ни одной которую бы нельзя бло реализовать на ФОРТ!!!
Тут главные слова - вычислительный алгоритм для вычислительной структуры: эффективен или нет.

Про регулярные выражения
Раз они были разработаны- их можно и в ФОРТ, но нужны ли они ему?
Рассматривать их как надстройку для работы с текстовыми данными???
Разве они пригожы для считывания бинарных данных, особенно когда не идет учет порядка следования байтов?

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

Вывод (субъективный)
Эта статья есть белый шум, потому как ничего конкретного из нее я для себя вынести не мог.
Только вот думаю все еще о... а зачем в ядро все то, о чем пишет господин Кнаггс?
Да про библиотекаря - просто другой стиль командной работы. Вам дали кусок кода - доведи до совершенства.
Или у ФОРТ я так поппробывал, другой так, потом слиил в третью версию получив объективную оценку...
Пример последенго конкурсные задачи.

Вот такие вот мысли!!!


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

Зарегистрирован: Чт апр 26, 2007 21:09
Сообщения: 303
Благодарил (а): 12 раз.
Поблагодарили: 10 раз.
Это не спор или противопоставления, просто - размышлизмы. Среда и подходы для меня новые. Учусь, почитывая, раздумывая и потыкивая пальцами в клаву...

>>> Что дает ООП - практически ничего, если вы работаете с микроконтроллером.
Ну, это смотря, с каких позиций подкрадываться...
ООП - это ж не конкретная традиция записи, а - стиль и способ мЫшленья, представления совокупности вещей, с которыми имеешь дело в проекте...
Относительно МК - если интерфейсов в проекте > 1 уже имеет смысл пересмотреть их совокупность на предмет выделения общего "предка"... УЖе конкретика по операциям записи/чтения и временным выдержкам - на откуп конкретных реализаций (SPI, UART...)... Не обязательно форма записи будет классической ООП-эшной, с классами и виртуальными функциями! Это можт быть и просто разбитые по файлам "синглотны", в которых даже названия функций будут не похожи, но "обсмысливание" уже произошло и в конкретном коде воплотилось. И сопровождать ООП-проекты (повторюсь: НЕ обязательно реализованные на "истинно-правильных" ООП-языках) ЗНАЧИТЕЛЬНО легче.

>>> Просто по накатанному скользить легче, чем идти по шершавому посыпаному песком снегу.
Может я неправильно понял, но на накатанном и подскальзываются легче... с последующим визитом в травмпункт...
А песочком потому и сыплют, что бы травматологи не сильно напрягались... :D


Последний раз редактировалось Wlad Вс апр 24, 2011 23:40, всего редактировалось 1 раз.


За это сообщение автора Wlad поблагодарил: Majestio
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн фев 16, 2009 17:42 
Не в сети
Аватара пользователя

Зарегистрирован: Вт ноя 06, 2007 21:23
Сообщения: 227
Откуда: Екатеринбург
Благодарил (а): 4 раз.
Поблагодарили: 7 раз.
Wlad писал(а):
ООП - это ж не конкретная традиция записи, а - стиль и способ мЫшленья, представления совокупности вещей, с которыми имеешь дело в проекте...

Ага восходящее и нисходящее проектирования обзывается наукой

Wlad писал(а):
Относительно МК - если интерфейсов в проекте > 1 уже имеет смысл пересмотреть их сосовкупность на предмет выделения общего "предка"... УЖе конкретика по операциям записи/чтения и временным выдержкам - на откуп конкретных реализаций (SPI, UART...)...

Ага сие в ФОРТ делается путем словарей. Слово одно, а действия разные.
А число интерфейсов однотипных просто перечислением, оно ведь конечное...


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

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
В любой предметной области есть устоявшийся набор понятий. Но это не означает, что этот набор фиксирован. Постепенно он расширяется и пересматривается. Практика программирования на СИ гораздо объемнее чем на Форте - поэтому там редко что возникает нового, в отличие от Форта, где еще мало что делали.
Стремление приблизить язык к естественному языку не является характерной чертой Форт-подхода(нет ключевых слов, явных типов).
Темп введения новых слов на единицу текста в Форте гораздо выше чем в майнстрим-языках. Форт не тяготеет к универсальным решениям, он чаще обходится частными небольшими конструкциями(поэтому их много). Но в этой частности Форта и его слабая сторона. Каждый раз приходится изобретать чуть-другой велосипед. И заимствовать-то особо нечего - решения в большинстве своем
частные.

_________________
С уважением, chess


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

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Кто-то позориТСЯ, a нам приходиТСЯ позориТЬСЯ.

Alexander писал(а):
доступ к которым производиться


Лишний букф!

п.с. глаз резануло.

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


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

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


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

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


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

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