Forth
http://fforum.winglion.ru/

совсем-совсем новичoк ;) объясните, плиз, что и как
http://fforum.winglion.ru/viewtopic.php?f=24&t=1304
Страница 1 из 5

Автор:  Necromancer13 [ Вс май 25, 2008 07:23 ]
Заголовок сообщения:  совсем-совсем новичoк ;) объясните, плиз, что и как

Здравствуйте =) меня уже давно интересует форт. ну и сегодня я решил с ним познакомиться ;)

нашел в Нете книжечку "Л. Броуди
НАЧАЛЬНЫЙ КУРС ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ
ФОРТ " и даже успел уже прочитать 3 главы ;)

дошел до того, как компилировать исходники ФОрта... там про какие-то блоки пишет... хз-хз.. книга-то старая...

попробовал скомпилировать такой исходник:

." Hello World!"

Так мне ругается SP-FORTH, что ." только для режима компиляции! Чот не так? %) ПОдключил инклуды , как у одном с примеров, но не помогло :( опять это пишет :(

Win32Forth вообще компилить у меня не хочет. Что делать? :-[

Автор:  WingLion [ Вс май 25, 2008 07:44 ]
Заголовок сообщения: 

наберите
: TEST ." Hello Word!" ;

потом на следующей строчке
TEST

п.с. я не караулю новичков на форуме, просто только что проснулся ;)

п.п.с. можно еще попробовать здесь почитать, если не поможет, будем разбираться, что непонятно :shuffle;

Автор:  Necromancer13 [ Вс май 25, 2008 07:56 ]
Заголовок сообщения: 

спасибо =) строчка выводится, но почему не компилится в экзешник? :(

P.S. А почему чтоб воспользоваться этим ." надо нове слово определять? ^_^

п.с. Спасибо за ссылку =) сейчас почитаю =)

Автор:  WingLion [ Вс май 25, 2008 08:04 ]
Заголовок сообщения: 

Компиляция в экзешник для форта - это почти интимный процесс.
Для этого необходимо вводить специальные команды.
В книге Броуди про это нет, потому что книга писалась тогда, когда не было монстров типа Windows XP и других подобных операционных систем.
И для каждой реализации Форта, ответ на вопрос "как компилировать в экзешник" надо искать в описании к конкретной реализации.

Автор:  Дядя Ваня [ Вс май 25, 2008 08:26 ]
Заголовок сообщения: 

А ответ на вопрос про экзешник будет?

Автор:  WingLion [ Вс май 25, 2008 08:44 ]
Заголовок сообщения: 

Дядя Ваня писал(а):
А ответ на вопрос про экзешник будет?


Куда ж мы денемся от ответов с подводной лодки? :)

про компиляцию в экзешник (конкретно для SPF!) читаем здесь:
http://spf.sourceforge.net/docs/intro.ru.html#save

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

--- добавлено позже ---
Пример в указанной ссылке может показаться запутанным,
поэтому привожу здесь более простой пример:

Код:
: МОЯ-ПРОГРАММА ." Hello World!" KEY ;
' МОЯ-ПРОГРАММА TO <MAIN>
S" test.exe" SAVE


Наберите этот текст прямо с консоли, и в вашем рабочем каталоге появится экзешник test.exe
который при исполнении выдаст строчку Hello World! на экран.

Автор:  Kamikaze [ Вс май 25, 2008 11:16 ]
Заголовок сообщения: 

Можно попробовать "чистый компилятор" ForthEC. Но, предупреждаю, это аутсайдерский вариант - кроме автора данного диалекта и меня на нем никто больше не пишет!!!

1. Качаем сам форт:
http://jiggawatt.org/badc0de/forthec/forthec14.zip
2. Качаем к нему MASM32:
http://www.masm32.com/masmdl.htm
3. Пишем свою прогу
4. Запускаем ее на компиляцию:
forthec -t win32 helloworld.f helloworld.exe

Автор:  вопрос [ Вс май 25, 2008 11:32 ]
Заголовок сообщения: 

Kamikaze писал(а):
Можно попробовать "чистый компилятор" ForthEC. Но, предупреждаю, это аутсайдерский вариант - кроме автора данного диалекта и меня на нем никто больше не пишет!!!
Вполне возможно, что зря.

Автор:  Kamikaze [ Вс май 25, 2008 11:53 ]
Заголовок сообщения: 

вопрос писал(а):
...Вполне возможно, что зря.

Он крайне минимален и сильно приближен к ассемблеру, с помощью которого, собственно, и компилируются готовые EXE и DLL. Единственное но - работа с текстом в нем не предусмотренна.
Однако прежде чем выбрать свой ФОРТ (свет клином на СПФ все-же не сошелся), рекомендую заглянуть на форуме в раздел "Конкурс решения задач" (http://fforum.winglion.ru/viewforum.php?f=19)
Кстати там, в теме "Преобразование текста в код Морзе и обратно"
(http://fforum.winglion.ru/viewtopic.php?t=1102) есть образец и на Фортеке.

Автор:  WingLion [ Вс май 25, 2008 13:46 ]
Заголовок сообщения: 

Народ, давайте, оставим тему для вопросов новичков,
а не зафлеймлять ее проталкиванием различных версий форта.

Автор:  Hishnik [ Вс май 25, 2008 14:18 ]
Заголовок сообщения: 

Компиляция в exe не является в Форте абсолютно необходимой, потому что можно написать

Код:
: test  <какие-то мои действия> ;

test


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

Автор:  Kamikaze [ Вс май 25, 2008 15:22 ]
Заголовок сообщения: 

WingLion писал(а):
Народ, давайте, оставим тему для вопросов новичков,
а не зафлеймлять ее проталкиванием различных версий форта.


Не "проталкиванием версий", а вербовкой новичков! :< :shock:

PS Да и какая разница - один диалект или другой? Главное - ФОРТ!

Автор:  Дядя Ваня [ Вс май 25, 2008 19:21 ]
Заголовок сообщения: 

Kamikaze писал(а):
Не "проталкиванием версий", а вербовкой новичков! rupor Shocked

PS Да и какая разница - один диалект или другой? Главное - ФОРТ!


Лично мне те ссылки показались способом "запутывания вероятного противника".
А новички на форуме - это противник.

В первом посте говорилось про SP-FORTH, про него и надо отвечать,
а иначе получится "мы Вам про Ерему, а Вы нам про Фому" :(

Автор:  mOleg [ Вс май 25, 2008 20:20 ]
Заголовок сообщения: 

Necromancer13 писал(а):
спасибо =) строчка выводится, но почему не компилится в экзешник?

потому что сохранение наработанного кода - это отдельная функция.

Necromancer13 писал(а):
P.S. А почему чтоб воспользоваться этим ." надо нове слово определять? ^_^

потому, что есть для этого другое слово:
.( Просто вывод строки )

Автор:  WingLion [ Вс май 25, 2008 21:02 ]
Заголовок сообщения: 

mOleg писал(а):
Necromancer13 писал(а):
P.S. А почему чтоб воспользоваться этим ." надо нове слово определять? ^_^

потому, что есть для этого другое слово:
.( Просто вывод строки )


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

Страница 1 из 5 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/