Важная информация
Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 16

Тема: Forth

  1. #1 Forth 
    Супер модератор Аватар для Kakos_nonos
    Регистрация
    07.01.2011
    Адрес
    Кубань
    Сообщений
    1,540
    Сказал(а) спасибо
    128
    Поблагодарили 437 раз(а) в 296 сообщениях
    Записей в блоге
    6
    Долго ходил вокруг да около и наконец решил попробовать покодить на форте.
    Надо сказать - язык очень необычный - мозги сильно скрипят, даже вещи, о которых в других языках не задумываешься, тут заставляюб хорошо подумать.
    Пока что написал только программу поиска простых чисел
    Код :
    : ISMOD 2DUP MOD 0= ;
    : ISPRIME DUP 1 BEGIN 1+ ISMOD UNTIL = ;
    : PRIMEF 1- BEGIN 1+ ISPRIME IF DUP . CR THEN 2DUP = UNTIL 2DROP ;
    После загрузки программы ввести в консоли "до от PRIMEF ", например 1000 2 PRIMEF.

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

  2. 3 пользователя(ей) сказали cпасибо:

    >Quiet Snow< (21.11.2014), Dispetcher14 (22.11.2014), Абадябер (21.11.2014)

  3. #2  
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,240
    Сказал(а) спасибо
    306
    Поблагодарили 192 раз(а) в 156 сообщениях
    Записей в блоге
    5
    Спасибо, сам хожу вокруг да около уже месяца 2. Я пока самую главную суть не понял, что за словарь его такой, как его мутить и все такое.
    Дружба-магия-радость!
    Ответить с цитированием  
     

  4. #3  
    Супер модератор Аватар для >Quiet Snow<
    Регистрация
    11.04.2011
    Адрес
    Планета земля
    Сообщений
    4,022
    Сказал(а) спасибо
    1,895
    Поблагодарили 1,015 раз(а) в 873 сообщениях
    Записей в блоге
    1
    Поэтому всем советую, хотя бы для разнообразия
    Kakos_nonos, ежель твои мозги скрипят, то мои, вероятно, вообще взорвёт на мясо. Вчера еле Blur фильтр написал
    для тени растрового шрифта, никогда ранее таких проблем с соображалкой не испытывал. В голове просто сумбур.
    Годы берут своё, и как-то быстро берут... Уж честно не до изучения новых языков, хотя занятие по себе знаю
    интересное весьма.
    Последний раз редактировалось >Quiet Snow<; 21.11.2014 в 13:16.
    Обучение прикладному программированию(по skype), качественно, недорого, 18+, вопросы в личку.
    «Если вы ничего не сделаете, я уверяю вас, ничего и не произойдёт» © Жак Фреско
    Ограниченно модерирую.
    Ответить с цитированием  
     

  5. #4  
    Супер модератор Аватар для Kakos_nonos
    Регистрация
    07.01.2011
    Адрес
    Кубань
    Сообщений
    1,540
    Сказал(а) спасибо
    128
    Поблагодарили 437 раз(а) в 296 сообщениях
    Записей в блоге
    6
    Абадябер, там ничего сложного, словарь это как присок процедур в программе.
    Мы пишем программу, например, на паскале добавляем процедуры:

    Pascal Code:
    1. procedure abc;
    2. procedure def;
    3. procedure aaa;


    Вот список и будут составлять из abc , def, aaa и их кода.

    Тут самая звгвоздка в том, что всё по другому пишется.

    Не 2 + 2, а 2 2 +
    Не func(5,6), а 6 5 func
    Не if a then b, а a if b then и так далее.

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

    А вот факториал:
    Код :
    : FAC 1 1 ROT 0 DO SWAP OVER * SWAP 1+ LOOP DROP ;
    Здесь не используются переменные, всё при помощи стековых операций.
    Но их можно использовать:
    Код :
    VARIABLE A
    150 A !
    A @ .

    Тут задаётся переиенная A, в неё вписывается значение 150, а потом она выводится.
    Ответить с цитированием  
     

  6. 2 пользователя(ей) сказали cпасибо:

    >Quiet Snow< (21.11.2014), Абадябер (21.11.2014)

  7. #5  
    Супер модератор Аватар для Kakos_nonos
    Регистрация
    07.01.2011
    Адрес
    Кубань
    Сообщений
    1,540
    Сказал(а) спасибо
    128
    Поблагодарили 437 раз(а) в 296 сообщениях
    Записей в блоге
    6
    Ещё более короткий факториал, теперь с помошью рекурсии.
    Код :
    : FAC DUP 1 <> IF DUP 1- RECURSE * THEN ;
    Ответить с цитированием  
     

  8. #6  
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,240
    Сказал(а) спасибо
    306
    Поблагодарили 192 раз(а) в 156 сообщениях
    Записей в блоге
    5
    А есть компиляторы, способные порождать исполняемые файлы под, например, ту же DOS? Нет, понятно, что Форт - интерпретируемо-компилируемый, но режим компиляции в нем тоже должен быть. Мне было бы интересно посмотреть и на исходные коды компиляторов, т.е, их реализации.
    Дружба-магия-радость!
    Ответить с цитированием  
     

  9. #7  
    Супер модератор Аватар для Kakos_nonos
    Регистрация
    07.01.2011
    Адрес
    Кубань
    Сообщений
    1,540
    Сказал(а) спасибо
    128
    Поблагодарили 437 раз(а) в 296 сообщениях
    Записей в блоге
    6
    Под DOS незнаю, под Windows есть хороший пакет SP-Forth. Он может создавать EXE-файлы, правда это не совсем компиляция, это полное сохранение форт-системы на диск, поэтому программы весят от 100 кб. Но скорость работы хорошая, пример EXE-простых чисел во вложении.
    При запуске такого кода создастся EXE:
    Код :
    : ISMOD 2DUP MOD 0= ;
    : ISPRIME DUP 1 BEGIN 1+ ISMOD UNTIL = ;
    : PRIMEF 1- BEGIN 1+ ISPRIME IF DUP . CR THEN 2DUP = UNTIL 2DROP ;
    : FOUNDALL -1 2 PRIMEF ;
     
     
    ' FOUNDALL TO <MAIN> 
    S" PRIME.EXE" SAVE

    Sp-forth позваляет делать оконные приложения, использовать многозадачность и прочие полезные вещи.

    Есть очень хорошая книжка по форту, вот она онлаин, там кроме самого языка описано также полностью его внутреннее строение, как устроен словарь, как на него действуют команды. В девятой главе.
    http://www.nncron.ru/book/sf/
    Если поискать, то можно найти версию для скачивания.
    Вложения
    • Тип файла: zip PRIME.zip (40.3 Кб, Просмотров: 0)
    Ответить с цитированием  
     

  10. #8  
    Профи Аватар для FelixMacintosh
    Регистрация
    20.01.2014
    Сообщений
    390
    Сказал(а) спасибо
    57
    Поблагодарили 45 раз(а) в 37 сообщениях
    Лучше знать один язык, зато очень хорошо
    я сейчас например, создаю такую прогу!, за которую можно нобелевку отхватить.. не то что
    какие-то там деньги, хотя и деньньги не помешали бы.. но как обычно водится никто не хочет
    финансировать малопонятные проекты, всё приходится делать самому
    Нет подписи : (
    Ответить с цитированием  
     

  11. #9  
    Профи Аватар для Dimon012
    Регистрация
    09.02.2011
    Адрес
    Владивосток
    Сообщений
    850
    Сказал(а) спасибо
    29
    Поблагодарили 130 раз(а) в 108 сообщениях
    Записей в блоге
    3
    Цитата Сообщение от Kakos_nonos Посмотреть сообщение
    А есть компиляторы, способные порождать исполняемые файлы под, например, ту же DOS?...Под DOS незнаю, под Windows есть хороший пакет [Ссылки могут видеть только зарегистрированные пользователи. ]. Он может создавать EXE-файлы, правда это не совсем компиляция, это полное сохранение форт-системы на диск, поэтому программы весят от 100 кб. Но скорость работы хорошая, пример EXE-простых чисел во вложении.
    При запуске такого кода создастся EXE...
    С современными процессорами типа i7, компиляция уже не имеет таких преимуществ, поэтому для целей самомодификации программы, в процессе исполнения, можно применять интерпрететоры, вот например мой любимый LISP.
    Цитата Сообщение от FelixMacintosh Посмотреть сообщение
    Лучше знать один язык, зато очень хорошо
    я сейчас например, создаю такую прогу!, за которую можно нобелевку отхватить.. не то что
    какие-то там деньги, хотя и деньньги не помешали бы.. но как обычно водится никто не хочет
    финансировать малопонятные проекты, всё приходится делать самому
    Не согласен, зная несколько языков (не скажу множество) проще выделять и использовать их сильные и слабые стороны, ведь общеизвсетно, что универсальных языков нет, каждый язык создавался для некоторой области. Даже если создатели языка говорили что создают универсальный язык, все равно они создавали ограниченный язык, в силу ограниченности собственных знаний.
    Прошу прощения.

    P.S. Я то же сейчас создаю прогу "на нобилевку", и то же все приходится самому, видать доля такая ;(.
    Ответить с цитированием  
     

  12. Пользователь сказал cпасибо:

    Абадябер (23.11.2014)

  13. #10  
    Супер модератор Аватар для >Quiet Snow<
    Регистрация
    11.04.2011
    Адрес
    Планета земля
    Сообщений
    4,022
    Сказал(а) спасибо
    1,895
    Поблагодарили 1,015 раз(а) в 873 сообщениях
    Записей в блоге
    1
    С современными процессорами типа i7, компиляция уже не имеет таких преимуществ
    Не надо вестись на NET-оподобных аналитиков, компиляция - это огромное преимущество, хитрожопые демщики
    времён DOS-a уже неоднократно доказали, что грамотное использование ассемблера может дать внушительные
    приросты производительности и актуально это именно сейчас, когда появляются новые SIMD инструкции,
    интерпретатор - это самая натуральная виртуальная машина, как работают виртуалки мы знаем и быстрее они
    работать не будут. Есть команды виртуализации, но это только для x86 команд.
    Самомодификация кода - явление настолько редкое, что сложно назвать его важным и тем паче мейнстримом.
    Дорогущие 6-ти ядерные процессоры не панацея. Сколько уже говорил и буду продолжать говрить, что от этой
    ветки многоядерности толку очень мало, ибо тонны абсолютно нераспараллеливаемых задач или очень плохо
    распараллеливемых, прибавим к этому сложность разработки на данную оптимизацию(не автоматическими
    штуками, а руками с прописыванием каждого потока).
    Единственный смысл этих процев в том, что разные программы можно развесить по ядрам и получить профит, а
    вот чтобы уже конкретная прога получила профит - надо очень нехило постараться.

    Лучше знать один язык, зато очень хорошо
    Лучше вообще хоть что-то знать ценное и нужное.


    Мне было бы интересно посмотреть и на исходные коды компиляторов, т.е, их реализации.
    Там GForth посмотри, написано под DOS есть:
    http://www.forth.org/compilers.html

    P.S. Я то же сейчас создаю прогу "на нобилевку", и то же все приходится самому, видать доля такая ;(.
    Желаю удачи. Ежели дадут, черкани на iforum, хоть порадуемся. Кораблестроение?

    но как обычно водится никто не хочет финансировать малопонятные проекты
    И правильно делают.
    Последний раз редактировалось >Quiet Snow<; 23.11.2014 в 12:54.
    Обучение прикладному программированию(по skype), качественно, недорого, 18+, вопросы в личку.
    «Если вы ничего не сделаете, я уверяю вас, ничего и не произойдёт» © Жак Фреско
    Ограниченно модерирую.
    Ответить с цитированием  
     

Страница 1 из 2 12 ПоследняяПоследняя
Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •