Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт апр 27, 2017 11:01

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 60 ]  На страницу Пред.  1, 2, 3, 4
Автор Сообщение
 Заголовок сообщения: Re: Straight Forth
СообщениеДобавлено: Сб янв 21, 2017 02:40 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 5966
Благодарил (а): 11 раз.
Поблагодарили: 95 раз.
Ethereal писал(а):
Конечно нет. Я тебе про необходимость как воздух для преподавания стандарта (в т.ч. как сформулированной понятийной и терминологической общности, причем уже устоявшейся), иначе просто нечего делать, а тут про СОБСТВЕННУЮ терминологию. Это же вещи взаимоисключающие. Собирался бы я вводить свою терминологию, нахрен мне стандарт ?

http://xn--80abucjiibhv9a.xn--p1ai/%D0% ... %D1%8B/336
Вот вполне себе стандарт. Там что-то есть про стандарты Форта?

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

Федеральные государственные образовательные стандарты обеспечивают:

1) единство образовательного пространства Российской Федерации;

2) преемственность основных образовательных программ начального общего, основного общего, среднего (полного) общего, начального профессионального, среднего профессионального и высшего профессионального образования.

Федеральным законом от 1 декабря 2007 года N 309-ФЗ была утверждена новая структура государственного образовательного стандарта. Теперь каждый стандарт включает 3 вида требований:


1) требования к структуре основных образовательных программ, в том числе требования к соотношению частей основной образовательной программы и их объёму, а также к соотношению обязательной части основной образовательной программы и части, формируемой участниками образовательного процесса;

2) требования к условиям реализации основных образовательных программ, в том числе кадровым, финансовым, материально-техническим и иным условиям;

3) требования к результатам освоения основных образовательных программ.


Какие здесь формулировки? "Структура, соотношение частей, условия реализации, результаты освоения". Будет образовательный процесс базироваться на стандарте, фундаментальных положениях (закон Ома - не стандарт, он именно закон), или частных документах, не так важно. Если для реализации учебного плана полезно привести пример, "а вот в процессе развития Форта применялись такие-то стандарты", то пусть оно там и будет. А если делается попытка прикрыться бумажками, чтобы не приставали, оно бесполезно.

Ethereal писал(а):
Студенты сами приходят и просят дать им тему для курсовой. Вот не пиши досужих домыслов о чем не знаешь.


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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Straight Forth
СообщениеДобавлено: Сб янв 21, 2017 03:41 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 5966
Благодарил (а): 11 раз.
Поблагодарили: 95 раз.
Ethereal писал(а):
А вот кстати интересный вопрос - ты сам сказал, что тебе не безразличен информационный фон в Форт-сообществе. А зачем ты тогда заливаешь его энтропией ? Потоком сообщений ни о чем ?

А кто ж это будет однозначно определять - энтропия оно или нет? :)
Ethereal писал(а):
А я еще на них ведусь.

Так вот за этим.
Ethereal писал(а):
Арифметику дробных чисел, или объединение одинарной и двойное арифметики целых тебе не интересно обсуждать.

Нет, не особенно. Я это прекрасно представляю с технической стороны. Наделать таких слов и образовать еще один транслятор на их основе - работа чисто рутинная. Только зачем оно потом будет нужно? А то вот, согласно народной истории, одна бабушка при рождении внучки купила видеомагнитофон VHS, а через 20 лет торжественно подарила его ей на свадьбу :) Вот внучка-то рада была! А Форт, как любое беловоронье прибежище, повышает риск уподобления такой бабушке. Сидит вот человек в своем углу и готовится торжественно осчастливить мир шикарной идеей - ФортОС, к примеру, или новый стандарт, от которого все ахнут и Microsoft тут же разорится. А потом дико обижается на отсутствие восторгов и уползает обратно, копить силы для очередного торжественного выполза. Программирования тут ноль. Нет, оно хорошее и даже работает, как тот видеомагнитофон (чего ему будет-то за 20 лет на антресолях). А чтобы было не ноль, надо сначала потратить 90% усилий на прояснение вопроса, выявление потребностей, взглядов окружающих, альтернативных точек зрения и прочего. Или, к примеру, вытравление позиции "вот приедут баре из ANS и всех погладят по головке, и тогда-то мы и пойдем за деньгами, гордо неся впереди распечатку стандарта". Forth Inc хвалится двумя программистами на full-time, о чем вы, люди? И проблема далеко не в том, что люди не знают, как работает DUP. Форт - весьма опасная вещь именно своей редкостью. С такими вещами, не имеющими широкой методической поддержки, надо быть трижды осторожными.

Ethereal писал(а):
Кстати, я попробовал объединять одинарную и двойную. Почти все слова двойной при этом улетают. Но при этом вылезает необходимость новых слов. Например распаковки >-< и упаковки <-> 64-разрядного на 32-разрядных и обратно. Слов в словаре и вправда в итоге становится меньше. Но записи типичных алгоритмов (таких как определение слова # ) становятся длиннее. Не выходит пока красоты без пестроты.

Ну вот это и есть область приложения методологии. Начиная с "а зачем вообще двойная арифметика и что из этого зачем следует в плане технических требований". И заканчивая тем, что # вообще-то не догма. Раз не получается красиво, может и вообще не стоит? Есть же печать как таковая, реализуемая в том числе и встроенными в ЯВУ функциями, в чем сакральный смысл цепочки # # # ?


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

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 336
Откуда: Карелия
Благодарил (а): 2 раз.
Поблагодарили: 16 раз.
Hishnik писал(а):
А кто ж это будет однозначно определять - энтропия оно или нет? :)
Вырежи свои сообщения из этой темы, распечатай и предложи другому программисту почитать. Тогда поймешь энтропия это или нет.
Hishnik писал(а):
Если для реализации учебного плана полезно привести пример, "а вот в процессе развития Форта применялись такие-то стандарты", то пусть оно там и будет. А если делается попытка прикрыться бумажками, чтобы не приставали, оно бесполезно.
1.) Образовательные стандарты типично сдираются в Министерстве образования с чьего-то конкретного курса. То есть где-то кто-то преподает вот так и это вдруг объявляется стандартом образования. Чиновники, они такие чиновники. Составляют стандарты не напрягаясь. Поэтому эти стандарты исполняются на местах только в общих чертах.
2.) Совместить Форт с буквой образовательного стандарта не реально (спецкурсы, впрочем, ВУЗы выбирают по вкусу). Форт - это скорей часть субкультуры ВУЗа, но никоим образом не часть учебного плана. Субкультура - это, к примеру, когда есть студенты, которые приходят в лабораторию просто так. Потусить в высокоинтеллектуальной среде, в которой замыкают на каких-то темах. Кто на Лиспе, кто на Форте, кто на критике СТО, а кто просто курсовую делает.
Hishnik писал(а):
Кроме того, студенты просят дать тему прежде всего потому, что им курсовую все равно надо писать. А вот тот факт, что они просят тему по редкому направлению, мог бы насторожить. Не "пилота Пиркса" ли они начитались? :) Впрочем, до таких вещей люди и без чтения Лема доходят. Раз уж преподаватель любитель редкой штуки, он вероятно будет рад, что этой его штукой заинтересовались.
Вот видишь как твое домысливание работает. Я не сказал, что я преподаватель. Ты это домыслил. Я - инженер. Я не сказал, что студенты просят курсовую по Форту. Ты это домыслил. Я сказал они просят курсовую. Не сказал по чему. Правильный ответ по теме микроконтроллеров. Просто у курсовой должно быть содержание. И несколько сложнее, чем помигать светодиодами. Варианты содержания предлагают студенту на выбор. Он выбирает. И среди вариантов есть вариант с Фортом. Бывает, что выбирают его. И не потому, что этим Фортом интересуется какой-то инженер.
Собственно у одной из наших преподавательниц были учебные места с отладочными платами на 80c196kc. Ничего полезного с ними сделать было нельзя кроме исполнения ассемберных программ в пошаговом режиме, моргания светодиодами и оцифровки сигнала встроенным в МК АЦП. Я в качестве шутки засунул в них Форт. Так-что платки стали двойного назначения. И сразу сильно поумнели. Так преподавательница сама стала предлагать студентам вариант курсовой применить вот этот Форт для практической задачи. Ибо задачи то можно уже предлагать серьезные, а до этого они были подчеркнуто учебными.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Straight Forth
СообщениеДобавлено: Сб янв 21, 2017 07:51 
Не в сети
Moderator
Moderator
Аватара пользователя

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

Ну, почему же. Я о Форте узнал таки в ВУЗе, причем не столько о самом языке, сколько о MISC архитектуре, как об одной из возможных и очень оригинальных, а дальше начал копать сам.
Не обязательно навязывать, можно ведь даже просто хороший обзор языков делать с указанием особенностей, преимуществ, недостатков. Научить писать что-то чуть сложнее Hello World на наборе разных(непохожих) языков. А так же показать, где преимущество каждого, показать как красиво могут решаться конкретные задачи на именно том или ином языке. Но и про недостатки языков тоже указать. И пусть один студент по собственному выбору возьмет задачку и язык (в паре) да сделает.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Straight Forth
СообщениеДобавлено: Сб янв 21, 2017 08:43 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 652
Благодарил (а): 3 раз.
Поблагодарили: 28 раз.
Ethereal писал(а):
Собственно у одной из наших преподавательниц были учебные места с отладочными платами на 80c196kc. Ничего полезного с ними сделать было нельзя кроме исполнения ассемберных программ в пошаговом режиме, моргания светодиодами и оцифровки сигнала встроенным в МК АЦП. Я в качестве шутки засунул в них Форт. Так-что платки стали двойного назначения. И сразу сильно поумнели. Так преподавательница сама стала предлагать студентам вариант курсовой применить вот этот Форт для практической задачи. Ибо задачи то можно уже предлагать серьезные, а до этого они были подчеркнуто учебными.

Здесь Форт встроили в стенд, в качестве загрузчика.
Учебное пособие: АППАРАТНЫЕ И ПРОГРАММНЫЕ СРЕДСТВА ВСТРАИВАЕМЫХ СИСТЕМ
А.О.Ключев, Д.Р.Ковязина, П.В.Кустарев, А.Е.Платунов
ИТМО, Санкт-Петербург, 2010г.

P.S. В n-ом количестве ВУЗов Форт есть в субкультуре. :)

Ethereal писал(а):
Я сказал они просят курсовую. Не сказал по чему. Правильный ответ по теме микроконтроллеров. Просто у курсовой должно быть содержание. И несколько сложнее, чем помигать светодиодами. Варианты содержания предлагают студенту на выбор. Он выбирает. И среди вариантов есть вариант с Фортом. Бывает, что выбирают его.

Какой круг рассматриваемых тем?
Есть ли методички подобные такой Применение PIC-контроллеров в измерительной технике


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Straight Forth
СообщениеДобавлено: Вс янв 22, 2017 13:40 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 336
Откуда: Карелия
Благодарил (а): 2 раз.
Поблагодарили: 16 раз.
mOleg писал(а):
Ну, почему же. Я о Форте узнал таки в ВУЗе, причем не столько о самом языке, сколько о MISC архитектуре, как об одной из возможных и очень оригинальных, а дальше начал копать сам.
Я уже уточнял, что в рамках спецкурса или курсовый работы запросто. Но не в рамках предмета. Вернее в рамках предмета можно о нем упоминать, но вот преподать нельзя. Ибо указания свыше не предусматривают.

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

А вообще учебный план - это результат торга между кафедрами. Было дело, что ассемблер урвали математики. И у одного курса вышло так, что низкоуровневое программирование как предмет им читали на 4-м курсе, хотя я на 2-м прочитал его как спецкурс. Так вот урвать-то они урвали, но читал предмет преподаватель, который писать программы на ассемблере не умеет. Просто он типа подготовился к чтению предмета, почитав литературу и все. И читал лекции так - директивы ассемблера в алфавитном порядке. А практические занятия спихнул на помошника. Бывает ведь и такой подход у некоторых - типа пару лет курсы почитаешь, глядишь и сам разобрался. Главное урвать предмет при торге. И один нетактичный студент сказал этому преподавателю, что он о нем думает, сравнив со мной. И не скажу, что мне было приятно об этом узнать, настолько некрасиво вышло.

А Форта как спецкурса у нас не было, только как курсовые и по желанию. Я думал составить такой курс, но дальше планов дело не дошло. Очень уж много работы предстоит только по написанию методички. Поэтому я и копал архаичные Форты FIG и -79 чтобы уяснить эволюцию идей и после ее изложить. Иначе никак.



За это сообщение автора Ethereal поблагодарил: mOleg
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Straight Forth
СообщениеДобавлено: Вс янв 22, 2017 13:43 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 336
Откуда: Карелия
Благодарил (а): 2 раз.
Поблагодарили: 16 раз.
Hishnik писал(а):
Ethereal писал(а):
Арифметику дробных чисел, или объединение одинарной и двойное арифметики целых тебе не интересно обсуждать.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Straight Forth
СообщениеДобавлено: Вс янв 22, 2017 13:55 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 336
Откуда: Карелия
Благодарил (а): 2 раз.
Поблагодарили: 16 раз.
KPG писал(а):
Какой круг рассматриваемых тем?

Курсовая - это не дипломная. В ней студент должен показать, что вот это и это освоил, но задача все таки должна быть посложнее Hello, world или поморгать светодиодом. Но не сложная, иначе в промежутке между прочими занятиями он ее не сделает. И тогда куратору курсовой придется доделать ее за него (и такое бывает, не отчислять же из-за курсовика). К примеру создать устройство на ПИК-контроллере, которое бы отслеживало работает ли сервер (по любому пригодному для этого признаку, хоть дополнительную программу на него установить, чтобы посылала что-нибудь в COM-порт) и если он какое-то время не работает принудительно замкнуть у него кнопку Reset. Устройство практически применимое, поскольку бывает сервера по ночам вешаются, их бы перегрузить, но до утра никто не придет. Вот такой примерно сложности.
KPG писал(а):
Курсовые по PIC-контроллерам конечно были. Или консультировал их я или студент варился в собственном соку, зависит от того появляется ли он после того как взял тему. Но методичек не написал, каюсь. Но я все-таки инженер, а не препод. И у нас без меня выбрали почему-то учебные места сначала с 80c196kc, потом AtMega, потом ПЛИС Альтера. ПИК не фигурировал в качестве курса.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Straight Forth
СообщениеДобавлено: Пн янв 23, 2017 03:29 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 5966
Благодарил (а): 11 раз.
Поблагодарили: 95 раз.
Ethereal писал(а):
1.) Образовательные стандарты типично сдираются в Министерстве образования с чьего-то конкретного курса. То есть где-то кто-то преподает вот так и это вдруг объявляется стандартом образования. Чиновники, они такие чиновники. Составляют стандарты не напрягаясь. Поэтому эти стандарты исполняются на местах только в общих чертах.

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

Можно увидеть конкретное место, где я домыслил преподавательство? :)
Ethereal писал(а):
Может тогда покажешь как с твоей точки зрения должно выглядеть сложение таких чисел ? Просто на ассемблере.

А что там показывать-то? Впрочем, даже тут возникает показательная вещь.

Вот допустим, мы разложили числа двойной длины по регистрам eax:ebx и ecx:edx. Почему "допустим" - потому что как они туда попадают, уже зависит от того, как конкретно организован стек - где указатель, куда растут адреса (нет ничего запретного в эмуляции стека массивом). Тогда мы просто пишем

Код:
mov eax,  ; загрузка где-то здесь
mov ebx,
mov ecx,
mov edx,
add ebx, edx
adc eax, ecx


Теперь смотрим на верхние 4 строки (плюс там еще работа с указателем стека, смещения) и ассемблерным чутьем понимаем, что можно бы улучшить. Берем 64-битные регистры

Код:
mov rax,
mov rbx,
add rax, rbx


Сразу приятнее. Несем показывать... а там IA32! И программка закрылась с честным сообщением, что ей надо PE64, а тут его нет. Причем с 64-битными регистрами можно было и просто перейти на 64 разряда, стало бы быстрее по каким-то пунктам. А везде ли они применены, раз уж взяли требование запускать на IA64? В итоге может оказаться так, что и применение обрезали, и полностью возможности 64 бит не используем.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Straight Forth
СообщениеДобавлено: Сб мар 11, 2017 03:55 
Не в сети

Зарегистрирован: Сб дек 17, 2016 23:03
Сообщения: 18
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Ethereal писал(а):
HughAguilar писал(а):
C.) A number is a pair of 64-bit integers, which are the numerator and denominator of a ratio (the numerator is signed and the denominator is positive). The data-stack is 16 bytes wide.
Since it is enough slow number presentation you can keep them by determining an extra operators for this type of numbers. For example
+ <-the addition of default fast numbers
%+ <-the addition of numbers with a numerator and denominator
I.e. I mean that the ideology of Forth demands types for operators, not operands. The type of operands must be just stack cell without more exact type specification. 64 bit (or maybe 128 bit) cell in your case.


I understand what you mean by Forth ideology demanding operators, not operands. I agree that tagged data (having a few bits of each datum reserved to indicate the type of the datum) is a break from Forth ideology --- Oforth and Factor do that --- the technique originated in Scheme/Lisp.

I won't have tagged data in Straight Forth. This is not necessary to distinguish between a ratio and an integer though. Just compare the denominator with 1 to determine that you have an integer (ratios are always normalized to have the smallest denominator possible). If you are mostly working with integers (such as pointers and counters, etc.) your code should be almost as fast with ratios as with plain integers --- the x86 branch prediction will work in this common case, but you will only get a mis-prediction when you actually have a ratio.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Straight Forth
СообщениеДобавлено: Сб мар 11, 2017 08:21 
Не в сети

Зарегистрирован: Сб дек 17, 2016 23:03
Сообщения: 18
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Ethereal писал(а):
HughAguilar писал(а):
C.) A number is a pair of 64-bit integers, which are the numerator and denominator of a ratio (the numerator is signed and the denominator is positive). The data-stack is 16 bytes wide.
Since it is enough slow number presentation you can keep them by determining an extra operators for this type of numbers. For example
+ <-the addition of default fast numbers
%+ <-the addition of numbers with a numerator and denominator
I.e. I mean that the ideology of Forth demands types for operators, not operands. The type of operands must be just stack cell without more exact type specification. 64 bit (or maybe 128 bit) cell in your case.


The current version of my document defines a number as a 64-bit fixed-point with an assumed unity of 2^32. I also have a double stack that holds double-precision numbers and ratios, and a float stack that holds floats.
Doing arithmetic on numbers requires these words: + - * / etc.
Doing arithmetic on doubles requires these words: D+ D- D* D/ etc.
Doing arithmetic on ratios requires these words: RAT+ RAT- RAT* RAT/ etc.
Doing arithmetic on floats requires these words: F+ F- F* F/ etc.

This seems overly complicated. There are a lot of words for the student to learn. There are also a lot of primitives for me to write in assembly-language, and all of these primitives are likely to be more than 32KB so they can't all fit in the code-cache at the same time.

My new idea is to simplify the language. I would have only ratios.
Doing arithmetic on ratios requires these words: + - * / etc.
The downside is that this is going to be slightly slower for these reasons:
1.) Every operation has to check if the denominator is 1 or not (operations such as @ and ! will abort if it is not 1).
2.) The data stack is now 16 bytes rather than 8 bytes wide, and all data is also twice as big --- this will result in more memory accesses being done and more data-cache thrashing.

Even though the new idea is likely to make the language slower, I am thinking that I will do it --- simplicity is always a good thing!


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Straight Forth
СообщениеДобавлено: Сб мар 11, 2017 08:39 
Не в сети

Зарегистрирован: Сб дек 17, 2016 23:03
Сообщения: 18
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Hishnik писал(а):
Ethereal писал(а):
Да этот механизм существует начиная с самого древнего Форта. Ну вот почему в Форте двойную точность указывают точкой в ЛЮБОЙ позиции ? А потому, что позиция точки попадает в переменную DPL. И после ввода числа, к примеру 12345.6789 у тебя есть 123456789 в виде двойного целого и позиция точки в переменной DPL равная 4. И что тебе еще надо ? Пишешь слово D>F , которое преобразует двойное целое и позицию точки в число с плавающей точкой в формате ТВОЕЙ ЭВМ и используешь если DPL не отрицательно (если никакой точки не было введено, то DPL будет -1). И не надо никакого DEFER. Все уже было придумано Муром.

3.1415926 - это Pi. Без дальнейшего D>F. Просто потому, что пользователи не хотят разбираться в тонкостях придуманного когда-то Муром, а хотят число с плавающей точкой записывать именно как число с точкой. Объективно необходимые вещи писать можно и нужно (например, S>F), но зачем навязывать формат записи, от которого пользователь хочет отказаться? Аргумент очень простой: Форт - гибкий язык? В нем все можно сделать как удобно? Ну так сделайте нам разбор чисел таким образом, чтобы нам было удобно работать. И если в ответ на это следуют культовые соображения вида "Мур делал не так, а ему лучше знать", то чего удивляться, что в Форт программистов не загнать?


Any comma or dot anywhere indicates a double-precision number. Also, floats require an 'e' to be a float. This is a very goofy system! Charles Moore did this back in the 1970s because he wanted doubles to look like floats, although they aren't actually floats. Although Charles Moore was a genius, not all of his ideas were good --- some of his ideas were bad, and this was one of the bad ones! Most likely, Charles Moore did not predict that Forth would ever have floating point --- this was before the personal computer was invented --- he was likely expecting Forth to only be used for micro-controllers, and he did not predict that common people would own desktop computers (in those days, only big companies and schools owned mini-computers, and they were extremely expensive).

This bad idea from the 1970s should not have been put in the Standard in 1994!

In my novice-package (written entirely in ANS-Forth) I have STR>NUM for converting strings to numbers. This is the new version of the novice-package that I will release soon (hopefully this weekend) --- but I can email it to anybody who wants to help test it before the official release.

Here are the comments from the STR>NUM section:

\ STR>INT converts strings to integers, either singles and doubles.
\ An integer is a string of digits. There may be commas throughout.
\ An integer may have a $ # or % at the front, signifying that it is hexadecimal, decimal or binary. If none of these are present, then BASE is used.
\ An integer may have a + or - at the front (after the base signifier if there is one), signifying non-negative or negative, but otherwise it is non-negative.
\ A comma at the beginning (after the sign signifier if there is one) signifies that the integer is a double, but otherwise it is a single.

\ These are valid integers:
\ $-,123,456 double: -123456 hexadecimal
\ -,123,456 double: -123456
\ ,123,456 double: 123456
\ 123,456 single: 123456

\ STR>FLT converts strings to floats.
\ A float is a string of digits. There may be commas throughout. All floats are in decimal.
\ A comma in the front is legal but should not be used as STR>NUM will interpret this as an invalid double.
\ There must be either a decimal-point or an exponent-signifier (either 'E' or 'e') or both.
\ If there is a decimal-point, there must be digits either before or after or both.
\ The first digits are the integer part. The digits after the decimal-point, if there is a decimal-point, are the fraction part.
\ The digits after the exponent-signifier, if there is an exponent-signifier, are the exponent part (scientific notation).
\ If there is an exponent-signifier, and there are no digits after it, then the exponent is assumed to be 0.
\ An exponent may have a + or - at the front, signifying non-negative or negative, but otherwise it is non-negative.

\ STR>NUM converts strings to either integers or floats.

\ These are valid floats:
\ -123,456.78 float: -123456.78
\ -123,456.78E4 float: -1234567800
\ -123,456.78E-4 float: -12.345678
\ 123E4 float: 1230000

\ STR>FLT differs from >FLOAT in a few ways.
\ 1.) >FLOAT will convert an empty string, or a string of blanks, into a zero. STR>FLT considers this to be invalid.
\ 2.) >FLOAT will convert a string into a number if it has blanks padding either the front or back or both. STR>FLT considers this to be invalid.
\ 3.) >FLOAT will convert a string of digits with neither a decimal point or a exponent-signifier into a number. STR>FLT considers this to be invalid.
\ 4.) >FLOAT does not accept commas. STR>FLT considers this to be valid.

\ I actually forgot about >FLOAT when I wrote STR>FLT --- I could have used >FLOAT instead.
\ STR>NUM would work because it does STR>INT first so #3 above would get converted into a #SINGLE by STR>INT before >FLOAT got called.
\ I could have just special-cased #1 and #2 above as being invalid before >FLOAT got called. It is unlikely that anybody would care about #4.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Straight Forth
СообщениеДобавлено: Вс мар 12, 2017 04:37 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 5966
Благодарил (а): 11 раз.
Поблагодарили: 95 раз.
A small note here. For Russia, comma is used as fractional part separator, in elementary school. A dot is known for IT, of course, and it is not a problem to identify floating point number even for non-programmer. Many programs, when switching to cyrillic key layout, switch dot to comma as well. This regards, for example, to MS Excel, and exported data may use comma or dot depending on language used. This is not a rule for Forth designed to be used outside of Russia, but this grealy helps me when I import Excel tables, converted to plain text.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Straight Forth
СообщениеДобавлено: Вс мар 12, 2017 06:48 
Не в сети

Зарегистрирован: Сб дек 17, 2016 23:03
Сообщения: 18
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Hishnik писал(а):
A small note here. For Russia, comma is used as fractional part separator, in elementary school. A dot is known for IT, of course, and it is not a problem to identify floating point number even for non-programmer. Many programs, when switching to cyrillic key layout, switch dot to comma as well. This regards, for example, to MS Excel, and exported data may use comma or dot depending on language used. This is not a rule for Forth designed to be used outside of Russia, but this grealy helps me when I import Excel tables, converted to plain text.


Does anybody other than Russia switch the comma and the dot?

I don't think it is a good idea for Straight Forth to allow either --- it should use one or the other --- a standard is supposed to standardize, which means that not everybody can get it their way.

Similarly, I don't think it is a good idea for Forth to have different language versions. I read about somebody who made a Spanish Forth, that used Spanish words --- for example, "si" instead of "if" --- it is possible that multiple versions of Straight Forth could exist, each in a different language, but I think this would be over-complicated and a bad idea.

I worked at a company where most of the programmers were Spanish speaking, and the software was for use in Central America. The rule was that all code (variable names, function names, etc.) had to be in English, including the comments. It was just too confusing to have a mixture of English and Spanish --- also, although most of the programmers preferred Spanish, all of them knew English, but there were some programmers who knew only English.

Can I assume that English is well enough known in Russia for an English-only Straight Forth to be used?

There are almost no Forth programmers in America, England, or any other English-speaking country --- Russian Forth programmers likely out-number all of them put together --- so demanding Russians to learn English might not work well.

Almost every time that I tell somebody that I program in Forth, they assume that I mispronounced "Fortran" --- they went through college and never heard of Forth --- that is how obscure Forth is in America.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Straight Forth
СообщениеДобавлено: Вс мар 12, 2017 16:19 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 5966
Благодарил (а): 11 раз.
Поблагодарили: 95 раз.
HughAguilar писал(а):
Does anybody other than Russia switch the comma and the dot?

Im not sure about worldwide statistics, but USSR school education assume comma. Now it is not used for programming, of course, and I don't know programming languages, even designed in Russia, requires comma. The only reason to use comma for me is Excel tables, exported as plain text and loaded in Forth. It was boring to open that text files and replace commas to dots. So, since Forth is flexible, why don't add conversion?

HughAguilar писал(а):
I don't think it is a good idea for Straight Forth to allow either --- it should use one or the other --- a standard is supposed to standardize, which means that not everybody can get it their way.

Yes, it is not mandatory, of course. Vectoring NUMBER is enough for adding other rules. Also, separator maybe vectorized too (so don't check for ASCII code, use word like ?SEPARATOR instead).

HughAguilar писал(а):
Can I assume that English is well enough known in Russia for an English-only Straight Forth to be used?

Of course, it is very important skill for programmers in Russia to know English. Using English keywords and variable names is absolute normal.

HughAguilar писал(а):
There are almost no Forth programmers in America, England, or any other English-speaking country --- Russian Forth programmers likely out-number all of them put together --- so demanding Russians to learn English might not work well.

It works well indeed. There are tons of English technical articles regarding to IT, so 'I can't read English documentation' is often looks like missed skill for programmers.
HughAguilar писал(а):
Almost every time that I tell somebody that I program in Forth, they assume that I mispronounced "Fortran" --- they went through college and never heard of Forth --- that is how obscure Forth is in America.

Yes, this happens in Russia too.


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

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


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

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


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

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