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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 112 ]  На страницу Пред.  1, 2, 3, 4, 5, 6 ... 8  След.

Что по-вашему лучше (и почему) ?
С++ 15%  15%  [ 4 ]
Forth 85%  85%  [ 22 ]
Всего голосов : 26
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Сб июл 29, 2006 13:38 
Не в сети
Administrator
Administrator
Аватара пользователя

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


Не вполне понятно, что такое "первичен" или "вторичен". А если Си проще написать на Хаскелле, то Хаскелль - "самый первичный"? Если говорить о грамматике, то Си уже содержит среди основных языковых конструкций и стандартных библиотек все необходимое для написания транслятора Форта. Транслятор Форта, в свою очередь, в совокупности со стандартными наборами слов, не содержит готовых средств для реализации компилятора Си. Но, к примеру, соотношение между Фортом и ассемблером не такое - один транялстор можно написать на другом с примерно одинаковыми усилиями.


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

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
вопрос писал(а):
Цитата:
С точки зрения грамматики языка - Форт на Си, разумеется. Он гораздо проще.


Слишком краткий резюме.
Если так, то Форт вторичен по отношению к языкам типа СИ


А Си на чем писать? Если в распоряжении только ассемблер,
то для написания одного только Си, проще будет написать
с начало Форт, а затем на нем Си.


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

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
Вообще, C++ и Forth это разные категории.
Forth это направление в вычислительной техники.
Приставку Forth могло-бы иметь все, что касается вычислительной техники
(включая тот-же С++). Если бы мир пошел по пути Форта он бы не имел названия.
Но надо исходить из реалий на данный момент.
Если стоит вопрос о выборе средства для создания конкретной программы,
то идеальным является то на котором эта программа уже реализована.
Или существует библиотека хорошо подходящая для решения данной задачи.
Для Форта наработок мало. Но при равных условиях Форт имеет то преимущество,
что библиотека форта может содержать не только подпрограмма, а директивы и
декларации, вплоть до расширения Форта до любого языка программирования.
На данный момент Форт используется там, где специализированные средства
оказались безсильны, несмотря на огромный труд в них вложенный.


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Mihail писал(а):
А Си на чем писать? Если в распоряжении только ассемблер,
то для написания одного только Си, проще будет написать
с начало Форт, а затем на нем Си.


Форт или не Форт - тут уже как проще разработчикам Си. Есть понятие "раскрутка компиляторов" - последовательное написание "промежуточных" трансляторов с тем, чтобы конечный продукт писался удобнее всего.
Mihail писал(а):
На данный момент Форт используется там, где специализированные средства
оказались безсильны, несмотря на огромный труд в них вложенный.

Не только Форт используется в подобных случаях. Просто тематика форума - "а как можно было бы использовать Форт" :)


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

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
amk писал(а):
FORTH - язык низкоуровневого програмирования


FORTH перекрывает понятие языка программирования. Он больше ОС и ВФМ.

Цитата:
Так, в нем отсутствуют, и вряд ли целесообразны, средства контроля типов, так как они будут либо проверять типы во время исполнения (что будет тормозить выполнение программы), либо понадобится достаточно сложная проверка во время генерации кода (на что FORTH-программисты, думаю, не пойдут, они и так обходятся).


Для реализации типов в Форте достаточно завести стек типов, а
действие или компиляция команд поставить в зависимость
от содержимого этого стека http://d14-435-04.rtc.ru:8888/f-pl1.rar .
На счет целесообразности, это зависит от задачи, форт-окружение
тут не причем.

Цитата:
С другой стороны, классические языки (С, С++, Pascal, Algol-??, Modula) позволяют писать программу особо не задумываясь о типах и прочем.


Главное преимущество этих языков, это прилагаемые к ним среды разработки,
библиотеки подпрограмм, примеры. Синтаксис Форта можно расширить до любого
языка:
http://194.85.99.132:8888/CinF11.rar - Си
http://194.85.99.132:8888/FBasic.rar - Basic

Цитата:
Вдобавок, компилятор осуществляет какую-то оптимизацию кода, что FORTH'у не доступно (апологеты могут возражать, но оптимизация программы в FORTH дело программиста),


При введении оптимизатора в СПФ, никаких изменений в приложениях не потребовалось.
http://wiki.forth.org.ru/optimizer
Цитата:
Поэтому, немотря на то, что FORTH является, пожалуй, самым быстрым интерпретируемым языком, а компактность программ на FORTH вообще вряд ли с чем можно сравнить, ему вряд ли удастся выдержать гонку с "настоящими" языкми программирования,

[/quote]

Оптимизатором для открытого Форта занимался только я.
Реализова далеко не все замыслы.
Тестировалось давно:
http://www.forth.org.ru/~af/shootout.htm
В общем на уровне


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

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
:oops: :oops:
Попробую выразить мысль яснее. Ведь это только в Форте я совсем новичок ...
Итак - поставлена задача - выяснить, какой язык проще и имеет больше возможностей.
А потому его стоит учить в первую очередь
Наибольшие возможности у ассеблера - но :D на не м
:roll: никто не станет кодировать большой код; си более нагляден как и форт
вопрос в следующем - какие ограничения для языка создают его удобства
т.е. что становится трудно сделать на языке более высокого уровня по сравнению с ассемблером
или есть ли что-то, что вообще нельзя реализовать.
СИ проще, во-первых, во взаимодействии с ассемблером, мы можем вызвать ассемблерную функцию, есть опеределённый стандарт вызова, мы не рискуем при этом ничего потерять, т.к. переменные в СИ поименованы и хороший компилятор не имеет проблем с тем, присутствует ли перед ассемблером pusha а после popa
В этом смысле Си ближе к ассемблеру, в форте нужно понять, где реально что лежит.


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

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

Форт - это не язык программирования! Это среда. Его нельзя сравнивать с Си. Точно так же будет неверно сравнение Лиспа или Пролога или Постскрипта с Си. Это просто различные языки. Кстати Си - язык среднего уровня. Он не является ни языком низкого уровня ни языком высокого( это придумал не я 8).
Форт, кстати никогда не считался ЯП низкого уровня- он считается яп высокого уровня.
В си нет возможности вмешиваться в процесс компиляции - для форта - это обычная практика. Форт мощнее си и гораздо более абстрактный, чем си. Си в своем принципе тесно связан с ассемблером. Применение ассемблера в Форте хоть и общепринятая практика, но все-таки нонсенс.

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

Вот-это утверждение мне не понятно совсем! Откуда оно взято?
вопрос писал(а):
в форте нужно понять, где реально что лежит.

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

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


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Mihail писал(а):
FORTH перекрывает понятие языка программирования. Он больше ОС и ВФМ.


Это лозунг. Существует понятие "язык программирования Форт", которое вбирает в себя и диалекты. Если знание Форта кому-то помогает за пределами программирования, очень хорошо. Но кому тут это непонятно? :)

Mihail писал(а):
Оптимизатором для открытого Форта занимался только я.


Точно знаешь? :)


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

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
Хищник писал(а):
Mihail писал(а):
FORTH перекрывает понятие языка программирования. Он больше ОС и ВФМ.


Это лозунг. Существует понятие "язык программирования Форт", которое вбирает в себя и диалекты.


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

Цитата:
Mihail писал(а):
Оптимизатором для открытого Форта занимался только я.


Точно знаешь? :)


Я бы хотел кого-нибудь найти.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб июл 29, 2006 15:42 
Icefall писал(а):
Бред имхо.
Читайте Мура, у Форта ноги растут еще со времен Фортрана и Алгола.

начало С идет с А


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

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


Вопрос исключительно в том, что как только мы расширим Форт до Си, мы получим Си. А расширим до Бейсика - получим Бейсик. Glasgow Haskell Compiler написан на Си, но текст на Си он почему-то не воспринимает. А воспринимает Хаскелль. Так что имеет смысл сразу разделить расширения на те, которые изменяют грамматику языка (и тогда мы получим Си, который при своем старте просто выполняет что-то там на Форте, что уже никого не интересует), и которые оставляют доступ к исходной грамматике Форта. Причем расширение не может быть каким угодно. Да, Форт - язык со свободной грамматикой. Это означает в первую очередь то, что в рамках L0 возможна реализация ТАКИХ грамматических наворотов, что никакой компилятор не разберет. Но заслуга Мура в том, что он на основе этой безмерной свободы (читай: анархии) все-таки смог выделить набор практических подходов, которые позволили надежно и единообразно транслировать исходный текст.

Mihail писал(а):
Неограниченная расширяемость Форта вообще лишает его неустранимых недостатков.


Ага, если мы знаем, как именно расширять. А для некоторых таких расширений нужно приложить очень большие усилия. Настолько большие, что Форт будет там незаметен, как аквариум с бегемотом в особняке нового русского... :)


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

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

Одна из самых здравых мыслей :!: , именно это и под вопросом - действительно ли неограниченная
(теряем в быстроте кода, читаемости, переносимости, совместимости с тем же ассемблером ? )


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

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
oleg писал(а):
Уф. Вечная тема.

вопрос писал(а):
СИ проще, во-первых, во взаимодействии с ассемблером, мы можем вызвать ассемблерную функцию,

Вот-это утверждение мне не понятно совсем! Откуда оно взято?
вопрос писал(а):
в форте нужно понять, где реально что лежит.

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

Вот именно тебе нужно знать, как устроена форт-вм, а при написании программ на СИ + АСС-Р нужно знать ТОЛЬКО Си и Ассемблер и не нужно знать никаких машин или устройства компиляторов (именно это и имею ввиду)


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

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
вопрос писал(а):
Одна из самых здравых мыслей :!: , именно это и под вопросом - действительно ли неограниченная
(теряем в быстроте кода, читаемости, переносимости, совместимости с тем же ассемблером ? )


Возникает вопрос: если я пишу на неком языке в рамках Форта, на Форте я
пишу или нет? В Форте есть команды для компиляции в кодах , C, .
Ассемблер в Форте представляет собой набор слов Форта, которые вызывают
эти команды. Т.о. Ассемблер в Форте это использование Форта в качестве
Ассемблера. Приблизить синтаксис к обычному ассемблеру, уже дело техники.
Что касается о удовлетворении противоречивых требований, то в Форте
(в зависимости от приложенных усилий) можно достичь любого, в принципе
допустимого компромисса.


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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
вопрос писал(а):
Вот именно тебе нужно знать, как устроена форт-вм, а при написании программ на СИ + АСС-Р нужно знать ТОЛЬКО Си и Ассемблер и не нужно знать никаких машин или устройства компиляторов (именно это и имею ввиду)

Утверждение не верно!
Нужно знать как распределяет регистры си, что и где он хранит, как вернуть результат и получить параметры.
Знать нужно то же.

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


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

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


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

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


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

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