Непонимание...

 
1 2 3 4
+
-2
-
edit
 

Gudleifr

втянувшийся

Сколько раз программисты радостно открывали Forth... и с омерзением закрывали...
Давно назрела необходимость ответить на вопрос, почему это происходит.
Без всяких модных манифестов, соплей и слюней...
Чисто по понятиям.

1. Для чего Forth предназначен?
Изначально (автором) - для написания проблемно-ориентированных языков, на которых можно будет легко описать решение задачи (желательно, самим юзером).
Все эти обратные польские записи, стеки, словари и шитые коды - следствие простоты языка и его ориентированности не на вычисления, а на "языкотворчество".
Т.е. имеем A (язык машины), пишем на коленке за неделю F (Forth), затем на нем - P (проблемно-ориентированный язык), отдаем юзеру и тот решает на P свои задачи.
Очевидно: F должен быть максимально прост (если он сравним по сложности с P, то проще сразу P реализовать) и настолько универсален, что его можно создать для любого A. Что и имеем.
Итак - Forth предназначен для сложных задач.

2. Почему его не любят программисты?
А программисты вообще не любят сложных задач.
Они любят простые задачи, которые выглядят сложными для пользователя.
Слложные - тот же геморрой - ни самому посмотреть (взглядом не окинешь), ни другим показать (не поймут).

3. Куда нужно засунуть Forth-процессоры?
Что мы выиграем от того, что A=F? Практически ничего. Вот от A, ориентированного на конкретный P, мы выиграем много.
Часто, наоборот, подходящий F (для конкретного P) проще написать на обычном, а не на Forth-процессоре.
Почему же делают Forth-процессоры? Потому, что это легко. F прост, почему же не сделать-то?
Основная хитрость - Forth не существует в окончательной форме. Это не язык, а средство написания языков. И увековечивать его в железе - глупость.

Не верите? Посмотрите статьи Дейкстры (оказывается, идею Forth предложил он), Мура (автора Forth) и книги Броуди. Можно у меня на страничке (в разделе FOBOS).
 20.020.0

tvv

новичок

1. У форта те-же проблемы, что и в ООП - так что его придеться выбросить(так-же как и ООП).
(хотя там где он применялся идея была правильная - но тогда условия были несколько другие чем сейчас, готовых компиляторов и библиотек не было, а надо было что-то сделать по-быстрому с нуля фактически на голом железе. Теперь это не актуально - полно мощных кросс-компиляторов и куча библиотек к ним, на любой вкус + серьезные технологии сразу мультиплатформенные)


2. Если хотите посмотреть пример правильного использования DSL - то посмотрите как сделан REDUCE...
(там несколько надстроек над лиспом - lisp - r-lisp - a-lisp)

Vladimir
PS сам по себе стековый принцип кода нынче используется много где - от байт-кода жабы и Ц#, до .PDF данных...
 

tvv

новичок

Gudleifr> Все эти обратные польские записи, стеки, словари и шитые коды - следствие простоты языка и его ориентированности не на вычисления, а на "языкотворчество".

на быструю реализацию - аналитические преобразования подменены тупыми вычислениями
(причем которые сильно инкапсулированы и уже не поддаются оптимизации!!!)

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


Gudleifr> Итак - Forth предназначен для сложных задач.
Gudleifr> 2. Почему его не любят программисты?
Gudleifr> А программисты вообще не любят сложных задач.

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

ООП эти дебилы и паразиты тоже очень любят... (и с ним тоже придеться бороться)

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

там по сути квази-упрощение - с наружи выглядит вроде бы просто(ну как процедура PREVIEW в том-же бровзере), но внутри эта процедура рекурсивно запустит ядро и подную прорисовку страницы - но этого не видно из-за инкапсуляции!!!
(поэтому и тормозят бровзеры, даже такие лучшие как OPERA - сделайте побольше строчку где вкладки - увидите что там не просто иконки, а мини-картинки с полным изображением всего содержимого страницы!!!
Вот вам и пример использования ООП - с наружи вроде бы удобно, дернул за метод и готово, но внутри жуткое Г которое снаружи не вижно, и это так и попадает в .EXE без всякой оптимизации! )

Gudleifr> 3. Куда нужно засунуть Forth-процессоры?
Gudleifr> Что мы выиграем от того, что A=F? Практически ничего. Вот от A, ориентированного на конкретный P, мы выиграем много.

похоже что так...

Vladimir
 

Balancer

администратор
★★★★☆
tvv> 1. У форта те-же проблемы, что и в ООП

Какие же? :)

tvv> PS сам по себе стековый принцип кода нынче используется много где - от байт-кода жабы и Ц#, до .PDF данных...

Почему «ныне»? Стек — изначально основная структура внутреннего хранения массы классических языков. Как раз, наоборот, регистровые виртуальные машины были в загоне до последних лет.
 21.021.0

Gudleifr

втянувшийся

tvv> 1. У форта те-же проблемы, что и в ООП
Не... Они антиподы: первый не требует полного достижения нирваны до начала программирования. Хотя C++ из ныне живущих ближе всех подошел к возможности писания на нем Проблемно-ориентированных языков (ПОЯ). Правда, все написанные на нем ПОЯ должны иметь его синтаксис и его логику...
 20.020.0
MD Wyvern-2 #20.05.2013 23:52  @Gudleifr#28.04.2013 11:48
+
-
edit
 

Wyvern-2

координатор
★★★☆

Gudleifr> 1. Для чего Forth предназначен?
Gudleifr> Изначально (автором) - для написания проблемно-ориентированных языков, на которых можно будет легко описать решение задачи (желательно, самим юзером).

Извини, но это глупость. ФОРТ изначально создавался, как язык управления реальными объектами Т.е. фактически - ФОРТ язык МИКРОКОНТРОЛЛЕРОВ. А стековая архитектура (откуда и польская запись) результат стремления к миниатюризации и удешевлению МК.
Невостребованность ФОРТА - результат, как ни странно, прогресса микроэлектроники :) Когда микроконтроллер, ценой в $0,99 уже может содержать десяток миллионов транзисторов, встроенное АЦП и кучу прибамбасов, экономия на регистрах и памяти становится неактуальной...

Кстати, ФОРТ породил массу "деток", шуршащих и поныне: тот же PostScript, та же Джава...
Жизнь коротка, путь искусства долог, удобный случай мимолетен, опыт обманчив.... Ἱπποκράτης  20.020.0
RU Gudleifr #20.05.2013 23:56  @Wyvern-2#20.05.2013 23:52
+
-
edit
 

Gudleifr

втянувшийся

Wyvern-2> Извини, но это глупость.
Это Вы не со мной спорите, а с Чарльзом Муром.
 20.020.0
RU Balancer #21.05.2013 00:14  @Gudleifr#20.05.2013 23:56
+
-
edit
 

Balancer

администратор
★★★★☆
Gudleifr> Это Вы не со мной спорите, а с Чарльзом Муром.

Чарльз Мур язык придумывал для конкретной и узко прикладной цели — управления телескопом. То, что ему результат понравился и он начал пытаться расширять его применение не отменяет первоначального целеполагания языка :)
 21.021.0

AXT

инженер вольнодумец

Wyvern-2> Кстати, ФОРТ породил массу "деток", шуршащих и поныне: тот же PostScript, та же Джава...

PostScript, конечно, да. А вот Java-то тут причём? Это же диалект Objective C, где тут Форт вообще?
 
RU Gudleifr #21.05.2013 00:20  @Balancer#21.05.2013 00:14
+
-
edit
 

Gudleifr

втянувшийся

Balancer> Чарльз Мур язык придумывал для конкретной и узко прикладной цели — управления телескопом.
Сам Мур это отрицает: CHARLES H.MOORE. PROGRAMMING A PROBLEM-ORIENTED-LANGUAGE, июнь 1970.
Он писал не язык управления чем-то, а язык, на котором можно писать такие языки.
Balancer> Чарльз Мур язык придумывал для конкретной и узко прикладной цели — управления телескопом.
Мур его не придумал, а реализовал. Придумал Дейкстра: Е.W.Dijkstra.
An attempt to unify the constituent concepts of serial program execution. 1962.
 20.020.0
+
-
edit
 

Balancer

администратор
★★★★☆
AXT> где тут Форт вообще?

JVM — стековая машина. И первые Java-процессоры были переименованными старыми Форт-процессорами :)
 21.021.0
RU Balancer #21.05.2013 00:25  @Gudleifr#21.05.2013 00:20
+
-
edit
 

Balancer

администратор
★★★★☆
Gudleifr> июнь 1970

Ага. А язык начал разрабатываться в 1958-м. За 10 лет можно много чего понапридумывать :)

Gudleifr> Он писал не язык управления чем-то, а язык, на котором можно писать такие языки.

Это интерпретация уже полученного результата. Первоначально задача стояла именно в написании управляющего языка. То, что в процессе его написания появилась идея метаязыка, не отменяет первоначальной цели.
 21.021.0
RU Gudleifr #21.05.2013 00:37  @Balancer#21.05.2013 00:25
+
-
edit
 

Gudleifr

втянувшийся

Balancer> Это интерпретация уже полученного результата. Первоначально задача стояла именно в написании управляющего языка. То, что в процессе его написания появилась идея метаязыка, не отменяет первоначальной цели.
Почему же? Если задача написания управляющего языка была решена путем написания метаязыка?

Впрочем, мы можем не верить Дейксре и Муру и верить уважаемому Balancer. Что мы тогда имеем? Forth, как никуда не годный управляющий язык. Гасим свет, сливаем воду...
 20.020.0
RU Balancer #21.05.2013 00:47  @Gudleifr#21.05.2013 00:37
+
-
edit
 

Balancer

администратор
★★★★☆
Gudleifr> Почему же? Если задача написания управляющего языка была решена путем написания метаязыка?

То, что на PHP сегодня пишут GUI-приложения не делает его универсальным языком и не меняет причин его создания. То же самое касается Бейсика, Паскаля, Форта… :)

Gudleifr> Впрочем, мы можем не верить Дейксре и Муру и верить уважаемому Balancer.

Просто важно не путать факты и их трактовку.

Gudleifr> Что мы тогда имеем? Forth, как никуда не годный управляющий язык.

Я такого не говорил. Форт — это так и не прижившийся в чистом виде метаязык. Но рождавшийся именно как управляющий. И почему «никуда не годный»? Как управляющий он был очень неплох. Он очень нишевый, но в тех нишах, где приживается, подходит неплохо. Потому-то я его и использую вот уже более 20 лет.
 21.021.0
RU Gudleifr #21.05.2013 01:02  @Balancer#21.05.2013 00:47
+
-1
-
edit
 

Gudleifr

втянувшийся

Balancer> Просто важно не путать факты и их трактовку.
Хорошо. Forth - язык для управления телескопом? Там есть нужные для этого операторы? Нет.
Можно на нем написать язык управления? Можно.
Можно предположить, что метаязык родился сам по себе из управляющего, без явного принятия решения о таком способе решения задачи? Нет.
Так, что, чего бы ни думал Мур в конце 50-х (дата явно натянута, чтобы обойти Дейкстру), в конце 60-х он это похерил и понял, что метаязык представляет большую ценность, чем конкретный управляющий.

Balancer> Как управляющий он был очень неплох.
Только тем, что просто реализуется. Иллюзия экономии места и реальная потеря быстродействия.
На нем можно "то-то" и "то-то"? Только там, где "то-то" требует метаязыка.

Balancer> Он очень нишевый, но в тех нишах, где приживается, подходит неплохо.
Причины загона его в... нишу я описал выше.
 20.020.0
RU Balancer #21.05.2013 01:03  @Gudleifr#21.05.2013 01:02
+
-
edit
 

Balancer

администратор
★★★★☆
Gudleifr> Хорошо. Forth - язык для управления телескопом?

Уф. Ещё раз. Не надо мне приписывать то, что я не говорил.

Всё остальное почти на том же уровне. Бисер закончился.
 21.021.0
MD Wyvern-2 #21.05.2013 01:15  @Balancer#21.05.2013 00:25
+
-
edit
 

Wyvern-2

координатор
★★★☆

Gudleifr>> Он писал не язык управления чем-то, а язык, на котором можно писать такие языки.

"Ну, можно и так"(с)И.В.Сталин :F Что не отменяет основной парадигмы.
Жизнь коротка, путь искусства долог, удобный случай мимолетен, опыт обманчив.... Ἱπποκράτης  20.020.0
RU Gudleifr #21.05.2013 01:19  @Balancer#21.05.2013 01:03
+
-
edit
 

Gudleifr

втянувшийся

Balancer> Чарльз Мур язык придумывал для конкретной и узко прикладной цели — управления телескопом. То, что ему результат понравился и он начал пытаться расширять его применение не отменяет первоначального целеполагания языка
...
Balancer> Уф. Ещё раз. Не надо мне приписывать то, что я не говорил.
Да, Вы правы. Предпочтения трудно обосновать. Играть словами легче.
И не жалуйтесь мне на то, что весь бисер потреблен, у меня больше нет.
 20.020.0
MD Wyvern-2 #21.05.2013 01:19  @Gudleifr#21.05.2013 01:02
+
-
edit
 

Wyvern-2

координатор
★★★☆

Balancer>> Просто важно не путать факты и их трактовку.
Gudleifr> Хорошо. Forth - язык для управления телескопом?
ФОРТ, как тут кое кто заметил - язык написания языка управления телескопом ;) В т.ч. И телескопом.

Gudleifr>Там есть нужные для этого операторы? Нет.
Как это нет? ЖР На нем можно написать любые операторы

Gudleifr> Можно на нем написать язык управления? Можно.
Угу. А вот что либо другое - тут же превращается в жесткое порно.
Жизнь коротка, путь искусства долог, удобный случай мимолетен, опыт обманчив.... Ἱπποκράτης  20.020.0
MD Wyvern-2 #21.05.2013 01:21  @Gudleifr#21.05.2013 01:19
+
-
edit
 

Wyvern-2

координатор
★★★☆

Balancer>> Уф. Ещё раз. Не надо мне приписывать то, что я не говорил.
Gudleifr> Да, Вы правы. Предпочтения трудно обосновать. Играть словами легче.

Ты сам то понял, что сказал? Тебя макнули фейсом в ФАКТ - историю написания языка. А ты почему то говоришь о каких то "предпочтениях" ЖР И кто тут д`Артаньян, а кто сексменьшинство?
Жизнь коротка, путь искусства долог, удобный случай мимолетен, опыт обманчив.... Ἱπποκράτης  20.020.0
RU Gudleifr #21.05.2013 01:24  @Wyvern-2#21.05.2013 01:21
+
-
edit
 

Gudleifr

втянувшийся

Wyvern-2> Тебя макнули фейсом в ФАКТ
В игнорирование фактов. В угоду предпочтениям.
 20.020.0
RU Balancer #21.05.2013 01:24  @Wyvern-2#21.05.2013 01:21
+
-
edit
 

Balancer

администратор
★★★★☆
Wyvern-2> Ты сам то понял, что сказал?

Забей. Тут уже ничем не поможешь. Вообще, не в первый раз вижу, как много представителей э... логических меньшинств привлекает к себе образ Форта. На этом фоне даже за себя побаиваться, порой, начинаю. Мне же тоже язык нравится. Вдруг это диагноз? :D
 21.021.0
RU Gudleifr #21.05.2013 01:26  @Wyvern-2#21.05.2013 01:19
+
-
edit
 

Gudleifr

втянувшийся

Wyvern-2> Угу. А вот что либо другое - тут же превращается в жесткое порно.
Почему? Да по тем причинам, что я указал в первом посте.
Блин, сказка про белого бычка.
 20.020.0
MD Wyvern-2 #21.05.2013 01:29  @Gudleifr#21.05.2013 01:24
+
-
edit
 

Wyvern-2

координатор
★★★☆

Wyvern-2>> Тебя макнули фейсом в ФАКТ
Gudleifr> В игнорирование фактов. В угоду предпочтениям.

А ты, мил дружок, случаем не выдаешь свои (неграмотные и необоснованные) умозаключения за факты, ась? Кажется, и не только кажется, что именно так.
ФАКТ тут только один: Мур писал язык для управления устройством(телескопом) Еще есть косвенные фактики: клоны ФОРТА прижились и наиболее распространены именно в системах управлениях (тот же Постскрипт)
Остальное - лукавое теоретизировании, да еще и небеспристрастное, как оказывается...
Жизнь коротка, путь искусства долог, удобный случай мимолетен, опыт обманчив.... Ἱπποκράτης  20.020.0
RU Gudleifr #21.05.2013 01:33  @Wyvern-2#21.05.2013 01:29
+
-
edit
 

Gudleifr

втянувшийся

Wyvern-2> А ты, мил дружок, случаем не выдаешь свои...
Не мои, а Дейкстры и Мура.
 20.020.0
1 2 3 4

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru