Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Ср сен 19, 2018 04:48

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 203 ]  На страницу 1, 2, 3, 4, 5 ... 14  След.
Автор Сообщение
 Заголовок сообщения: noob log
СообщениеДобавлено: Сб апр 14, 2012 20:52 
Не в сети
Аватара пользователя

Зарегистрирован: Пт апр 13, 2012 11:57
Сообщения: 142
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Привет, друзья! Перво-наперво хочется отметить, что я совершенный нуб, причём, это касается не только программирования на Форте, но и программирования вообще. В связи с этим, у меня, разумеется, накопилась масса вопросов, для вас, очевидно, смешных и даже неприглядных. Конечно, скажете вы, так ведь и всегда, но тебе (то есть - мне) , автор, сначала следует хорошенько изучить матчасть, избороздить Интернеты, а потом уже, не позорясь, заходить сюда и вопрошать компетентной поддержки. С другой стороны, честно говоря, я уже и так перерыл немало инфы, но, видимо, всё же недостаточно. Однако, снова здравствуйте. Я-таки позволю себе задать несколько тривиальных вопросов, а уж как на них реагировать, блин, ну, решать явно не мне.

1) FORGET&MARKER
Листая "Starting FORTH" Броуди (причём, сразу отмечу, что пока лишь в прямом смысле листая, так сказать, в ознакомительном режиме, и, да, я знаю, что у книги есть замечательный перевод, но я начал читать оригинальное последнее издание, адаптированное под актуальный стандарт Форта, впрочем, далее об этом я также скажу несколько слов) наткнулся на пример со словом FORGET. Оказалось, что в моём Форте это слово отсутствует, гугл по этому поводу привёл сюда, на этот самый, замечательный, форум, точнее, даже в этот раздел. Выяснилось, что реализация слова (или функции, в общем, как вы понимаете, за чистоту терминологии не ручаюсь) FORGET довольно сложна и, также, в нём (слове) нет особой нужды, более того, даже последний стандарт (кажется, 94-го года) и вовсе его не предусматривает, посему FORGET был заменён на более гибкий и эффективный MARKER. Так вот, не могли бы вы подсказать о тонкостях работы с MARKER? Кое в чём я, кажется, и сам разобрался:

Код:
: GREET  ." Hello, I speak Forth. " ;
GREET
MARKER RESTART
: GREET  ." Hi there! " ;
GREET
RESTART
GREET

В данном случае MARKER работает подобно FORGET и в итоге выводит "Hello, I speak Forth"

Код:
: GREET  ." Hello, I speak Forth. " ;
GREET
: GREET  ." Hi there! " ;
GREET
MARKER GREET
GREET

А если так, то GREET получается пустым, как-будто слово не заданно

Следовательно, если я правильно понял, слово MARKER просто отмечает текущие параметры системы и если их переопределить, а потом, если что-то не понравится, можно просто откатиться до того состояние, которое было помечено MARKER? Меня ещё интересовало, в этом и заключается вся хитрость MARKER, или есть какие-то дополнительные "переменные" для маркера? Например, я пробовал "MARKER -GREET GREET" и "MARKER -1 GREET", предполагая, что таким образом я добьюсь аналогичного поведения, как и от FORGET. Всё это было неправильно, или нужнно как-то иначе? Да, и, кстати, для маркирования можно задавать любое слово, скажем, не обязательно RESTART? А то если я просто ввожу слово RESTART, то Форт говорит, что ему такое слово неизвестно (пробовал на двух разных Фортах, но о реализации я заикнулся упомянуть ниже).

2) Ввод/Вывод
Как бы смешно это не прозвучало, но присутствует ли в Форте механизм ввода и вывода информации посредством "загрузки" данных из сторонних файлов? К примеру, есть ли возможность в Форте открыть и работать, ну, допустим, с файлом stihipushkina.txt? Да, у Броуди даже целая глава посвящена теме I/O, но, при беглом смотре, складывается странное впечатление. Скажем, в других языках такая возможность присутствует, в Пайтоне она точно есть (я интересовался особенностями многих языков, прежде чем пришёл к выводу, что Форт, блин, это нечто!).

3) Стандарт и реализация
Сразу отмечу, что для себя выбрал, по всей видимости, неправославную для большинства обитателей этого форума реализацию Форта (насколько могу судить, большинство здесь использует SP-Forth): SwiftForth, естественно, evaluation version (ибо платить тонну денег не прельщает). В общем-то, несмотря на то, что язык как бы и не особенно популярный, но выбор, в принципе, есть. Изначально рассматривал GForth, впрочем, он у меня тоже установлен, причём, из убунтовского офф. репозитория. Правда, на первый взгляд (и не только мой), легко подумать, что проект скорее мёртв, чем жив. Ещё рассматривал iForth, какой-то грандиозный Форт (вес дистрибутива свыше 100 метров) рекомендованный, наряду со SwiftForth, неким Марселем Хендриксом (судя по всему, автором iForth), который адаптировал последнюю версию книги (или книг, но до "Thinking Forth" я ещё не добрался) Броуди для веба. Однако, iForth мне показался каким-то громоздким, наверно, рассчитанным на профессионалов, так что я от него отказался, лучше тренироваться на чём-нибудь попроще. Почему не SP-Forth? Странно, но я не раз натыкался в сети на сообщения от фортеров, что у него плохая совместимость с linux, хотя, возможно, это устаревшая информация. Так или иначе, я для себя избрал Swift, кстати, тому есть, пусть и весьма комичное, рациональное объяснение - дело в том, что я "программирую" (ну, экспериментирую) в SciTE (это ни в коем случае не реклама, к тому же, в моём пиаре этот редактор точно не нуждается, и всё же, на мой взгляд, он просто офигенный!), и как-то так получается, что когда к сцайту прикручиваешь GForth, то в окне вывода получается результат, а за ним следует информация о версии Форта и т.п., а вот со Swift такого не происходит, окошко чистое - ничего лишнего, только то, что нужно. Конечно, есть ещё масса других (kForth, pForth, yForth), да бог с ними, лучше теперь о стандарте. Изучая форум, обратил внимание, что многие (в том числе и сам WingLion) советуют подыскать для себя реализацию Форта стандартизации F-83, вместо актуальной на сегодняшний день ANSI-94, так как большинство литературы всё же написано применительно именно к этому стандарту. Так вот, спрашивается, могу ли я, неплохо освоившись с современным стандартом, потом читать примеры из "старинной литературы", только выполнять их учитывая произошедшие изменения (к тому же, вроде бы, из не особенно-то и много)?
Да, о MARKER, раз уж я упомянул про SciTE в качестве IDE, то вроде бы вопрос и не то чтобы первой необходимости и особенной роли не играет, просто интересно (разумеется, это касается программирования на настольном компьютере из-под функционирующей ОС и из лучшего в мире редактора, для эмбдедщиков, возможно, он приобретает совершенно иное значение).

4) FORTH относительно других языков и ещё несколько общих вопросов
Я прекрасно сознаю, что для хорошего программиста язык ни в коей мере не может служить самоцелью, но является скорее средством, причём, средство это выбирается в контексте решения той или иной задачи, потому, такое понятие как "универсальный язык" многими воспринимается как профанация, ведь по аналогии несложно догадаться, что, к примеру, молотком удобно забивать гвозди, а лопатой копать землю. И всё же... Скажите, с помощью Форта, теоретически, можно реализовать всё то же самое, что и за счёт C или Пайтон? Понятно, что эти и многие другие языки призваны как можно более удобно решать круг конкретных задач, однако, в принципе, можно ли решать те же задачи, пусть и с некоторой степенью изощрённости (или извращённости, кому как больше нравится), силами Форта? К тому же, зачастую встречал упоминание Форта в контексте с другими языками (в основном C и asm, если, конечно, последний можно назвать языком), значит ли это, что Форт нужно воспринимать по большей части как язык системного программирования (контроллеры и всё такое), или, чисто гипотетически, на нём можно эффективно писать и... не знаю как сказать... ну, обыкновенные программы. Скажем, можно ли на Форте написать консольный (так как с построением GUI у Форта дела обстоят сложно, да и не его это специализация) редактор аналогичный Vim или Emacs? Ещё вот такой вопрос, - можно написать реализацию своего Форта полностью на Форте? Дело в том, что, может плохо копался, но большинство попадавшихся мне Фортов написаны в вкраплениями чужеродных языков. Ну и последнее: вполне ли Форт самостоятельный язык, ибо, опять же, очень часто его упоминают в связи с другими языками; если проще, можно ли изучать Форт, а потом его использовать, но при этом не владея другими языками (пускай и не раскрывая весь его потенциал), ну, как тот же Пайтон, если других языков не знаешь?

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

Ах да, ну и последнее, разумеется, у меня есть мотивация для изучения программирования, но ничего больше я вас сказать не могу, потому как вы своруете мою идею, измените мир и станете миллионерами.

_________________
Дейкстраординарный


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

Зарегистрирован: Вс апр 25, 2010 11:14
Сообщения: 200
Откуда: Москва
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.
С первым вопросом я не разбирался, но по остальным постараюсь ответить:
2)Механизм ввода-вывода приблизительно одинаковый в любых современных языках и форт исключением не является. Не файловый, а блочный режим работы - это пережиток старых систем, нигде уже этот механизм не используется.
3)Со стандартами всё довольно плохо, т.к. существует много разных плохо совместимых форт-систем. F-94 и F-83 - это просто гарантии того, что система похожа на другие и с ней будет проще разобраться.
Учиться программировать лучше на чем-то промышленном всё-таки, а не на эзотерических языках а-ля форт. Вы питон упомянули - вот с него и начните.
4)Написать что-угодно можно при помощи чего-угодно, но стоит ли это затраченных усилий?
GUI пишется везде одинаково, с помощью библиотек. Подключите к форту - будет GUI и на форте.
5)У форта - очень высокий порог вхождения. (ни книг нормальных, ни единой системы программирования, ни библиотек, ни нормальной документации, ни книг, ни курсов - ничего нет, при этом язык сильно отличается от мэйнстримовых)
Форт приучает не к аккуратности, а к мазохизму. К аккуратности приучает паскаль.
И изучать форт ИМХО нужно, только если вы или с микроконтроллерами возитесь или хотите кругозор расширить. На практике он довольно бесполезен, хотя исключения бывают.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: noob log
СообщениеДобавлено: Сб апр 14, 2012 22:02 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Zinger писал(а):
Конечно, скажете вы, так ведь и всегда, но тебе (то есть - мне) , автор, сначала следует хорошенько изучить матчасть, избороздить Интернеты, а потом уже, не позорясь, заходить сюда и вопрошать компетентной поддержки.


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

И даже еще нет нормального FAQ как такового, чтобы к нему послать, потому что нет тех самых новичков, задающих одинаковые вопросы.

По вопросам.

1. MARKER ИМЯ-СЛОВА создает новое слово, которое работает так как сработала бы команда FORGET ИМЯ-СЛОВА

Потому FORGET и становится не нужен,

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

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

2. Ввод-вывод в файлы в современных фортах существует в современном виде. Через слова, позволяющие

Открывать, создавать, читать и писать файлы.

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


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

4. Теоретически бытует такая фраза, что "Форт может все".
И это так, с одной оговоркой. К Форту должен быть приложен программист, который знает как научить Форт это самое "все" делать.

А голый Форт, он как голый Ассемблер. Пока ему не скажешь что и как делать - он ничегошеньки не сделает.

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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: noob log
СообщениеДобавлено: Сб апр 14, 2012 22:27 
Не в сети
Аватара пользователя

Зарегистрирован: Пт апр 13, 2012 11:57
Сообщения: 142
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
2 Antender
Спасибо, отличный комментарий, на мои посты, где бы я их не размещал, как правило, редко дождёшься столь целокупного и содержательного ответа. Конечно, как вы понимаете, это не совсем то, чего я ожидал, однако, просто, понятно и безо всякого предубеждения. Ладно, посмотрим, может будут и другие мнения. Пока всё же принялся, как говорится, с толком и расстановкой разбирать Броуди. Кстати, вы, получается, не согласный со столпом, который с первых же строк своей, некогда (а может и сейчас, вопрос лишь в количестве почитателей) культовой книги уверяет, что:
Цитата:
If you're a beginner who wants to learn more about computers, Forth is a great way to learn. Forth is more fun to write programs with than any language that I know of.

If you are a seasoned professional who wants to learn Forth, this book is just what you need. Forth is a very different approach to computers, so different that everyone, from newcomers to old hands, learns Forth best from the ground up. If you're adept at other computer languages, put them out of your mind for now, and remember only what you know about computers.


А вот что говорит вики по поводу порога вхождения:
Цитата:
Свобода, предоставляемая программисту, требует сильного самоконтроля. Входной порог для программирования на Форте ниже, чем у языков типа C++, но требует привыкания и понимания не только возможностей и особенностей синтаксиса Форта, но, также, понимания философии, лежащей в его основе.


Относительно книг, а как же тот же Броуди, со "Starting Forth" ясно, допустим, обычный туториал, но вот "Thinking Forth" называют просто гениальной работой, причём, не одни лишь упоротые фортеры. С другой стороны, мне кажется, что некоторый "дефицит" литературы в каком-то смысле даже на руку, так как, если брать во внимание мэйнстримовые языки, то, на мой взгляд, всякого рода макулатуры даже слишком много, причём, большая часть - мусор, способный лишь ввести в заблуждение. А библиотека современного фортера, это, можно сказать, всё труды, прошедшие фильтрацию временем, что не нужно - забыто, а вот Броуди и ещё там несколько книг... блин, забыл название, но есть ещё какая-то очень любимая фортерами книга, посвящённая реализациям других языков на Форте или чему-то подобному... легко найти, но сейчас лень копаться, там два автора... называется как-то вроде "Реализация программ на ЭВМ".

В любом случае, я не собираюсь самодурствовать, упираться и спорить с вами, к тому же, я действительно весьма вам признателен, вы коротко и ясно просветили меня относительно наиболее интересующих вопросов.

_________________
Дейкстраординарный


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: noob log
СообщениеДобавлено: Сб апр 14, 2012 22:41 
Не в сети

Зарегистрирован: Чт ноя 23, 2006 00:44
Сообщения: 316
Откуда: СПб
Благодарил (а): 10 раз.
Поблагодарили: 4 раз.
Zinger писал(а):
......
4) FORTH относительно других языков и ещё несколько общих вопросов
......
Скажем, можно ли на Форте написать консольный (так как с построением GUI у Форта дела обстоят сложно, да и не его это специализация) редактор аналогичный Vim или Emacs?
.......

тов. WingLion писал: "4. Теоретически бытует такая фраза, что "Форт может все".
И это так, с одной оговоркой. К Форту должен быть приложен программист, который знает как научить Форт это самое "все" делать.
" IMHO Звучит как: пиши на Delphi, C#, ... , поскольку нет приличных гуи-либ для Форта!
А вот и неправда!!! Есть прекрасно документированные GUI-либы от ~yz + есть великолепные (но практически не документированные) от тов. ~nn (найти примеры можно тут http://www.nncron.ru/forums/viewforum.php?f=5).
Вы сидите на Ubuntu? "Рисовать" GUI под GTK ещё проще ( нежели под Win).
Много полезного (особенно для начинающих) можно узнать на форуме http://www.nncron.ru/forums/viewforum.php?f=5


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: noob log
СообщениеДобавлено: Сб апр 14, 2012 22:44 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1255
Благодарил (а): 3 раз.
Поблагодарили: 17 раз.
Zinger писал(а):
Как бы смешно это не прозвучало, но присутствует ли в Форте механизм ввода и вывода информации посредством "загрузки" данных из сторонних файлов?

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

И далее получаем на стеке адрес с содержимым файла и его размер в байтах.
Zinger писал(а):
Форта, теоретически, можно реализовать всё то же самое, что и за счёт C или Пайтон?

Теоретически на чём угодно можно написать что угодно.
Zinger писал(а):
Понятно, что эти и многие другие языки призваны как можно более удобно решать круг конкретных задач

Изначально так и задумывалось. Но как видно, решение все-таки не идеальное.
Zinger писал(а):
значит ли это, что Форт нужно воспринимать по большей части как язык системного программирования (контроллеры и всё такое), или, чисто гипотетически, на нём можно эффективно писать и... не знаю как сказать... ну, обыкновенные программы.

Конечно можно. Яркие примеры - eServ, nnCron, Quark.
Zinger писал(а):
Скажем, можно ли на Форте написать консольный (так как с построением GUI у Форта дела обстоят сложно, да и не его это специализация) редактор аналогичный Vim или Emacs?

Ничего сверхсложного. В книге Броуди есть даже относительно простой набросок.
Zinger писал(а):
Ещё вот такой вопрос, - можно написать реализацию своего Форта полностью на Форте?

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

Да вполне. Но все же, знание других языков очень даже не помешает, и даже наоборот - может очень помочь. Например в разделе кварка лежит мой плагин на питоне для Blender3D, позволяющий экспортировать 3D-модели в кварк-формат.
Zinger писал(а):
Также, попрошу, насколько это возможно, не советовать мне изучать другие языки

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

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

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

Ха-ха. Нет, я серьезно - такая или похожая идея есть у каждого фортера. Михаил - система микроплатежей. Chess, Alex - стековые манипуляторы. mOleg - fork. Хищник - кварк, матрица из форт-ядер(ммм). И у каждого идея уж точно не одна. В общем - Свой Форт.

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: noob log
СообщениеДобавлено: Сб апр 14, 2012 23:13 
Не в сети

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


На СПФ загружается из внешней библиотеки http://spf.cvs.sf.net/viewvc/spf/lib/include/core-ext.f?annotate=1#l17
Можно посмотреть как нон выражено средствами других форт систем http://fpauk.narod.ru/enc.html#MARKER
Лично я потребности в этом слове не испытываю. Место в котофайле достаточно, перезапустить систему ничего не
стоит. Начинать лучше с процедуры INTERPRET.
Хочу обратить внимание, что программа с помощью которой форт-система воспринимает входной поток
в форт-системе представлена как и все остальные форт-слова.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: noob log
СообщениеДобавлено: Сб апр 14, 2012 23:32 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Ilya писал(а):
И это так, с одной оговоркой. К Форту должен быть приложен программист, который знает как научить Форт это самое "все" делать. " IMHO Звучит как: пиши на Delphi, C#, ... , поскольку нет приличных гуи-либ для Форта!


Стоп-Стоп-Стоп-Стоп!
Этот Дерек и с тобой гулял?! Двуличный придурок! (с)...

Это к тому, что звучит моя фраза совсем не так!
Тем более, что программисту, не умеющему делать "все", никакой Дельфи, Си и иже с ними не помогут!

Мне вот, эти гулибы нафиг не сдались! Делаю то что мне надо так как умею, и Форт мне в этом только помогает.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: noob log
СообщениеДобавлено: Сб апр 14, 2012 23:45 
Не в сети
Аватара пользователя

Зарегистрирован: Пт апр 13, 2012 11:57
Сообщения: 142
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Господа, не могу не выразить вам высочайшей степени благодарности! Ваши слова взбудоражили (в позитивном смысле) меня подобно глотку крепкого кофе (впрочем, я, признаться, крепкий не пью: 1 ложка быстрорастворимого, 3 сахара и треть молока на кипяток; - гэг)! После вполне годного, но всё же весьма удручающего (как мне показалось) поста Antender на меня уже было начала скалиться лёгкая апатия вкупе с разочарованием. Но не тут-то было, после ваших комментариев в меня снова вселилась небывалая уверенность в собственную изб... ой, то есть, имею в виду, в то, что я пошёл верным путём (чуть было не проболтался насчёт истории своей болезни).
Поскольку накопилось довольно много сообщений, точнее, сообщений вроде и немного, но все развёрнутые, то в ближайшее время, несомненно, все их прокомментирую (разумеется, там где это необходимо, дабы не разводить флеймильню).

зы
Да-да, понимаю, может показаться, что я несу изрядную ахинею, радуясь тому, что вы подтвердили мои предположения относительно Форта и, тем самым, складывается впечатления, что это типичная щенячья радость нуба, чьи воззрения одобрили аксакалы (да, может вы не догадывались и даже думать не думали о моих воззрениях по поводу Форта, и всё же, сложилось так, что вы их подтвердили). Что ж, врать не буду, возможно - так и есть.

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

_________________
Дейкстраординарный


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: noob log
СообщениеДобавлено: Вс апр 15, 2012 00:02 
Не в сети

Зарегистрирован: Чт ноя 23, 2006 00:44
Сообщения: 316
Откуда: СПб
Благодарил (а): 10 раз.
Поблагодарили: 4 раз.
WingLion писал(а):
Ilya писал(а):
И это так, с одной оговоркой. К Форту должен быть приложен программист, который знает как научить Форт это самое "все" делать. " IMHO Звучит как: пиши на Delphi, C#, ... , поскольку нет приличных гуи-либ для Форта!


Стоп-Стоп-Стоп-Стоп!
Этот Дерек и с тобой гулял?! Двуличный придурок! (с)...

Это к тому, что звучит моя фраза совсем не так!
Тем более, что программисту, не умеющему делать "все", никакой Дельфи, Си и иже с ними не помогут!

Мне вот, эти гулибы нафиг не сдались! Делаю то что мне надо так как умею, и Форт мне в этом только помогает.

Вот если Вам не требуется "рисовать" GUI, то это не означает, что нет нормальных GUI-либ под SPF!!! :dmad;
И так "не очень" популярный ЯП, вот зачем отговаривать от него интересующихся? :shock:


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: noob log
СообщениеДобавлено: Вс апр 15, 2012 00:14 
Не в сети
Administrator
Administrator
Аватара пользователя

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

В целом да, где-то так. Слова, создаваемые через MARKER, действительно нужны, чтобы откатываться на некое запомненное состояние системы. Другое дело, что на сегодня есть как минимум три соображения, делающие использование отката (через MARKER или FORGET) не такими уж ценными. Во-первых, это большие объемы памяти. Слова, в определенный момент ставшие балластом, уже не особо мешают определять новые слова, потому что места обычно существенно больше, чем может реально слопать программист, пишущий код руками. В момент написания основного массива книг по Форту память была все еще дефицитом. Во-вторых, для замены действия слова не обязательно его забывать. При повторном определении слова с таким же именем интерпретатор будет натыкаться сначала на более свежую версию (но это никак не повлияет на ранее скомпилированный код, использующий старую версию). В-третьих, приемы программирования сейчас могут быть уже не такими тривиальными. После отката на маркер может вдруг оказаться, что код, оставшийся живым, ссылается на что-то, что уже оказалось убрано маркером.
Маркер может запоминать текущее положение в словаре, памяти данных (если код и данные разделены), контекстный и текущий словарь. Вобщем, как именно откатиться на заданную точку, решает автор конкретной версии Форта.
Zinger писал(а):
Как бы смешно это не прозвучало, но присутствует ли в Форте механизм ввода и вывода информации посредством "загрузки" данных из сторонних файлов? К примеру, есть ли возможность в Форте открыть и работать, ну, допустим, с файлом stihipushkina.txt? Да, у Броуди даже целая глава посвящена теме I/O, но, при беглом смотре, складывается странное впечатление. Скажем, в других языках такая возможность присутствует, в Пайтоне она точно есть (я интересовался особенностями многих языков, прежде чем пришёл к выводу, что Форт, блин, это нечто!).

Это тоже связано с временем выхода книг Броуди. Сейчас многие реализации Форта уже имеют нечто, близкое к POSIX (т.е. как минимум умеют открыть-закрыть-прочитать-записать файл). Вообще, язык, который используется для разработки какой-то версии Форта, вполне позволяет оформить вызов системной функции как слово Форта.
Zinger писал(а):
Так вот, спрашивается, могу ли я, неплохо освоившись с современным стандартом, потом читать примеры из "старинной литературы", только выполнять их учитывая произошедшие изменения (к тому же, вроде бы, из не особенно-то и много)?

На мой взгляд, да. Смысл Форта не в синтаксисе, который к тому же элементарно переделывается под себя. Важнее понять, как именно меняется стиль программирования, а это удобнее делать на наиболее простой версии.
Zinger писал(а):
Скажите, с помощью Форта, теоретически, можно реализовать всё то же самое, что и за счёт C или Пайтон? Понятно, что эти и многие другие языки призваны как можно более удобно решать круг конкретных задач, однако, в принципе, можно ли решать те же задачи, пусть и с некоторой степенью изощрённости (или извращённости, кому как больше нравится), силами Форта? К тому же, зачастую встречал упоминание Форта в контексте с другими языками (в основном C и asm, если, конечно, последний можно назвать языком), значит ли это, что Форт нужно воспринимать по большей части как язык системного программирования (контроллеры и всё такое), или, чисто гипотетически, на нём можно эффективно писать и... не знаю как сказать... ну, обыкновенные программы.

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

http://fforum.winglion.ru/viewtopic.php?f=23&t=2633
Но это далеко не аналогично Vim.
Zinger писал(а):
Ещё вот такой вопрос, - можно написать реализацию своего Форта полностью на Форте?

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

Вполне. Есть примеры людей, для которых Форт - основной язык программирования ("программирующие специалисты").


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: noob log
СообщениеДобавлено: Вс апр 15, 2012 04:25 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Ilya писал(а):
Вот если Вам не требуется "рисовать" GUI, то это не означает, что нет нормальных GUI-либ под SPF!!! :dmad;
И так "не очень" популярный ЯП, вот зачем отговаривать от него интересующихся? :shock:


Шуточки? Где это я кого отговаривал? :dmad;
И ткните меня носом, где это я говорил про:

Ilya писал(а):
нет нормальных GUI-либ под SPF!!!


?????

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: noob log
СообщениеДобавлено: Вс апр 15, 2012 17:52 
WingLion писал(а):
Ilya писал(а):
Вот если Вам не требуется "рисовать" GUI, то это не означает, что нет нормальных GUI-либ под SPF!!! :dmad;
И так "не очень" популярный ЯП, вот зачем отговаривать от него интересующихся? :shock:


Шуточки? Где это я кого отговаривал? :dmad;
И ткните меня носом, где это я говорил про:


Звиняйте, Plz! Может я не совсем правильно интерпретировал Ваш пост! :sorrys:


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: noob log
СообщениеДобавлено: Вс апр 15, 2012 19:11 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4944
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
Zinger писал(а):
наткнулся на пример со словом FORGET. Оказалось, что в моём Форте это слово отсутствует, гугл по этому поводу привёл сюда, на этот самый, замечательный, форум, точнее, даже в этот раздел. Выяснилось, что реализация слова (или функции, в общем, как вы понимаете, за чистоту терминологии не ручаюсь) FORGET довольно сложна и, также, в нём (слове) нет особой нужды, более того, даже последний стандарт (кажется, 94-го года) и вовсе его не предусматривает, посему FORGET был заменён на более гибкий и эффективный MARKER.

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

Zinger писал(а):
Как бы смешно это не прозвучало, но присутствует ли в Форте механизм ввода и вывода информации посредством "загрузки" данных из сторонних файлов? К примеру, есть ли возможность в Форте открыть и работать, ну, допустим, с файлом stihipushkina.txt?

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

Zinger писал(а):
Сразу отмечу, что для себя выбрал, по всей видимости, неправославную для большинства обитателей этого форума реализацию Форта (насколько могу судить, большинство здесь использует SP-Forth): SwiftForth, естественно, evaluation version (ибо платить тонну денег не прельщает). В общем-то, несмотря на то, что язык как бы и не особенно популярный, но выбор, в принципе, есть

Все же СПФ получше был бы, большее количество людей с ним может помочь, к тому же это вполне рабочий инструмент, на котором написано несколько продуктов, что в этом плане у Swift надо еще посмотреть. Лично мне платформа *nix не интересно (не стала ни одна сборка на ноуты, так, чтоб не криво).

Zinger писал(а):
потому, такое понятие как "универсальный язык" многими воспринимается как профанация, ведь по аналогии несложно догадаться, что, к примеру, молотком удобно забивать гвозди, а лопатой копать землю. И всё же... Скажите, с помощью Форта, теоретически, можно реализовать всё то же самое, что и за счёт C или Пайтон? Понятно, что эти и многие другие языки призваны как можно более удобно решать круг конкретных задач, однако, в принципе, можно ли решать те же задачи, пусть и с некоторой степенью изощрённости (или извращённости, кому как больше нравится), силами Форта?

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

Zinger писал(а):
Скажем, можно ли на Форте написать консольный (так как с построением GUI у Форта дела обстоят сложно, да и не его это специализация) редактор аналогичный Vim или Emacs?

возьмите Win32Forth, там есть собственная IDE с редактором и т.п.

Zinger писал(а):
If you're adept at other computer languages, put them out of your mind for now, and remember only what you know about computers.

Очень важная цитата, кстати. Очень много инородного привнесли в форт пришедшие "с другого берега", не поняв основ (что самое неприятное).

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: noob log
СообщениеДобавлено: Вс апр 15, 2012 22:07 
Zinger писал(а):
...С другой стороны, мне кажется, что некоторый "дефицит" литературы в каком-то смысле даже на руку, так как, если брать во внимание мэйнстримовые языки, то, на мой взгляд, всякого рода макулатуры даже слишком много, причём, большая часть - мусор, способный лишь ввести в заблуждение.

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

Zinger писал(а):
А библиотека современного фортера, это, можно сказать, всё труды, прошедшие фильтрацию временем, что не нужно - забыто,

Решения на Форте, чаще всего, это то что нужно было "конкретному" Форт программисту или специалисту использующему Форт - это его способ "видения" и "решения" "его" задач:)
поэтому "не серийно". Учитывая что бывает разработать "своё" ещё и проще.

P.S. C массовым внедрением I-neta есть некоторая возможность упорядочить
подходы в рименении Форт от разных разработчиков и постараться как то это использовать.


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

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


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

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


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

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