Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пн июл 23, 2018 17:24

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 40 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Чт апр 17, 2008 10:45 
Не в сети
Moderator
Moderator

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

http://www.bestreferat.ru/archives/69/bestref-93569.zip ( ~19.5Кб в архиве)

P.S. Все просто, доступно и понятно написано, ( спасибо Крису Касперски)
Форт и Лисп упоминаются между строк,
как антагоники к существующему положению вещей.:)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт апр 17, 2008 12:38 
Вымерли языки? Перестали их использовать? Значит их использование стало невыгодным.
Появились новые языки, усложняются языковые конструкции? Значит в этом сейчас есть необходимость.
Цитата:
Симула и Смолток естественным образом поддерживают многозадачность, многопоточность и распараллеливают вычисления на уровне языка.

Не понимаю я Касперского. Ну не поддерживает C++ многопоточности на уровне языка. А должен? В конце концов есть функции ОС, которые обеспечивают эти возможности. Введение многопоточности на уровень языка, является ИМХО не упрощением языковых конструкций, а их усложнением. C++ это не Java, которая сейчас вполне предендует на квази-ОС.
Хотя в будующем стандарте С++ многопоточность на уровне языка уже объявлена, как и кое-что из функционального программирования, замыканий... На РСДН писали об этом.
Цитата:
Остановить этот суицид очень просто—достаточно на законодательном уровне потребовать от производителей отвечать за свой продукт, выплачивая неустойку за каждую критическую ошибку. Программисты мгновенно одумаются и выкинут из программы все лишние узлы, а оставшиеся перепишут с использованием «легких» языковых средств, выбросив «заумные» и «тяжелые» в топку.

Смеялся. :))
Цитата:
Впрочем, процесс упрощения языков пошел уже и без того. При всей моей нелюбви к С#, я все-таки вынужден признать, что это большой шаг вперед, поскольку из него выкинули кучу конструкций Си++, которые были слишком сложны для рядовых программистов. В результате на С# намного меньше шансов написать уродливую программу

Ну-ну. :) Сегодня выкинем одни конструкции, завтра добавим другие. Потом появится еще одна статья, наподобие этой, где нововведенные конструкции будут критиковаться, потому, что в очередной раз сменилась парадигма их применения, и вообще нынешнее мейнстримовое N-ориентированное программирование стало не тру. :shuffle;
Я вообще не считаю Java или C# шагом вперед по сравнению с <<подставить любой язык программирования>>. Это просто еще два языка программирования, которые что-то вобрали от других языков, видоизменились, приспосабливаясь к необходимым в данное время задачам.
Изменились задачи - дополняйте или меняйте возможности языка. Хотите - придумывайте новый язык, если есть мнение что это будет удобнее для использования. :)
Лично я в основном работаю с С++ (BC++, MSVC++, g++), и меня в большинстве задач он полностью устраивает. Где не устраивает - пишу на других языках. Пусть даже некоторые из них товарищ Крис Касперский посчитает вымершими. Главное, что они будут соответствовать задаче.

Получилось сумбурно, но уж как получилось. :shuffle;


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт апр 17, 2008 14:19 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2110
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 37 раз.
Владимир писал(а):
Сегодня выкинем одни конструкции, завтра добавим другие.

Больное место - выкидывают и добавляют не те кто использует язык.

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


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

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
Статья в Dr. Dobb`s о функциональном стековом языке CAT

http://www.ddj.com/architect/207200779

Можно сравнить вариант вычисления факториала

для CAT
Код:
define fact
{ dup 1 <= [pop 1] [dec fact *] if }


для Forth
Код:
: fact dup 1 <= if drop 1 else dec fact * then ;


P.S. И небольшой блог по этой статье
http://blogs.gotdotnet.ru/personal/sos/ ... 7a8024f735


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6344
Благодарил (а): 14 раз.
Поблагодарили: 99 раз.
И мой вариант: :)

Код:
CREATE FACT_TABLE[] 1 , 1 , 2 , 6 , \ и другие значения факториала

: FACT ( X -- X!)  + @ ;


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

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

а смысл? сравнивается два рекурсивных алгоритма...

кстати, код для форта не совсем ANSI

Kopa писал(а):
: fact dup 1 <= if drop 1 else dec fact * then ;

должно бы так:
: fact dup 1 <= if drop 1 else dec RECURSE * then ;


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6344
Благодарил (а): 14 раз.
Поблагодарили: 99 раз.
mOleg писал(а):
а смысл? сравнивается два рекурсивных алгоритма...

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


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

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

а с чего Хищник взял, что не будут?
Поройся по инету - везде примеры нахождения факториала именно с помощью рекурсии ;)

с другой стороны, если сравнивать рекурсию, то почему бы и не факториал?


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6344
Благодарил (а): 14 раз.
Поблагодарили: 99 раз.
mOleg писал(а):
а с чего Хищник взял, что не будут?
Поройся по инету - везде примеры нахождения факториала именно с помощью рекурсии

Красивый в теории, но ненужный на практике пример. Сколько там будет считаться факториал от 10000 через рекурсию? А насколько нагрузит память системы таблиц факториалов такого размера? Я уже не говорю о том, что 10000! - это непомерное число, диапазон представления (даже 80-битного формата comp) очень скоро переполнится.


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

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
Хищник писал(а):
Красивый в теории, но ненужный на практике пример. Сколько там будет считаться факториал от 10000 через рекурсию?


Пример иллюстративный :) ( Но рекурсия неплохо понимается с использованием стека )

P.S. Подтекст в том, что оператор if выступает в роли обычной функции
принимающей на входе ( bool xt1 xt2 -- ).

Можно реализовать Фортовские if ... else ... then и другие ветвления
с использованием данной семантики, если этого еще не было.


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

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
Проект перевода книги по использованию Common Lisp. ( почти законченный )
By: Peter Seibel ( Published Apr 2005 )

http://pcl.catap.ru/doku.php

P.S. Дальнейшее рассмотрение реалий программирования.


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

Зарегистрирован: Вт ноя 06, 2007 21:23
Сообщения: 227
Откуда: Екатеринбург
Благодарил (а): 4 раз.
Поблагодарили: 7 раз.
fac(1,1).
fac(N,M):-
N1 is N-1, fac(N1,N2), M is N*N2.
Ну вот как-то так на Прологе, а если еще и assert использовать?!


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

Зарегистрирован: Пн ноя 05, 2007 13:54
Сообщения: 135
Благодарил (а): 0 раз.
Поблагодарили: 11 раз.
А если просто немного подумать и вместо мемоизации(assert) использовать простейшую хвостовую рекурсию(вызов fac() должен быть в последнем утверждении правила)? Да и с 0! как-то некрасиво получилось. Если есть желание продемонстрировать свои способности на Прологе, почему бы не сделать это на соответствующем форуме?

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


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

Зарегистрирован: Ср сен 13, 2006 10:06
Сообщения: 636
Откуда: Омск
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
А я ни как не могу понять причем тут lisp и forth? Вобще разные механизмы. Лисп расчитан в логике на обработку списков и там совсем другое. Это как сравнивать C# и форт, C# красив, но если приглядется в фрамеворк то гнильцой попахивает.

_________________
Меня нет, не будет и не было.


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

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


Давным давно, на каком-то семинаре, гаворилось о реализации Лиспа и Пролога
в Форте, при этом можно было писать на смеси Лиспа и Пролога. По моему, это уже
все утеряно.


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

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


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

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


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

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