Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Kopa
Зарегистрирован: 02.02.2014 Сообщения: 38 Откуда: Челябинск
|
|
Вернуться к началу |
|
 |
Manwe Администратор сайта

Зарегистрирован: 21.09.2007 Сообщения: 1426
|
|
Вернуться к началу |
|
 |
Kopa
Зарегистрирован: 02.02.2014 Сообщения: 38 Откуда: Челябинск
|
Добавлено: Ср Мар 08, 2017 20:51 Заголовок сообщения: |
|
|
Уделали Вы их.
Мне тоже не совсем понятна (от слова почти) вся эта "магия" Forth Haku
P.S. Придумать объяснение "иррациональным" вещам весьма незаурядное занятие. (как понять эволюцию ДНК) |
|
Вернуться к началу |
|
 |
Alex
Зарегистрирован: 03.06.2017 Сообщения: 3
|
Добавлено: Сб Июн 03, 2017 18:33 Заголовок сообщения: |
|
|
Manwe писал(а): |
Что может быть изящней такой программы?
Код: | x y + 1.23 +
x * y * y sin 2dup
* over < x - |
|
Любая другая программа на языках высокого уровня. Вы не понимаете элементарной вещи. Форт конечно прекрасный язык, но он скажем так - машинно ориентированный. Именно отсюда его фора записи. Которая в то время когда он создавался была обусловлена чрезвычайно слабыми возможностями микропроцессоров.
Но с тех далёки времён скорость процессоров выросла в миллиарды раз. И больше нет никакой необходимости переводить в уме код в наиболее удобоваримый для процессоров вид.
Используйте свой ум для другого. |
|
Вернуться к началу |
|
 |
Digimind assembler digger

Зарегистрирован: 22.09.2007 Сообщения: 103
|
Добавлено: Пн Июн 05, 2017 00:04 Заголовок сообщения: |
|
|
Alex писал(а): | Manwe писал(а): |
Что может быть изящней такой программы?
Код: | x y + 1.23 +
x * y * y sin 2dup
* over < x - |
|
Любая другая программа на языках высокого уровня. |
Да кто ж поверит на словах без конкретного примера?
Тут изящество в том, что каждая команда работает на эффект - без лишней шелухи, бесполезного мусора и костылей, зашкаливающих как ни странно у высокоуровневых программ.
Берём простейший шаблон для tiny-интр на C++:
http://www.iquilezles.org/code/isystem1k4k/isystem1k4k.htm
Самый простой пример i1k_D3D9Shader - несколько килобайт исходного кода вместо десятков байт в форт хайку.
Т.к. эффект сравнимый, то C++ программа получается 100-кратно менее изящная из-за размера исходника. |
|
Вернуться к началу |
|
 |
Manwe Администратор сайта

Зарегистрирован: 21.09.2007 Сообщения: 1426
|
Добавлено: Вт Июн 13, 2017 10:33 Заголовок сообщения: |
|
|
[quote="Alex"] Manwe писал(а): | Вы не понимаете элементарной вещи. Форт конечно прекрасный язык, но он скажем так - машинно ориентированный. | Очень странное предположение. Почему же не понимаю? Конечно, понимаю.
Цитата: | И больше нет никакой необходимости переводить в уме код в наиболее удобоваримый для процессоров вид. Используйте свой ум для другого. | Стоп. А Вы когда по-английски говорите, тоже "переводите в уме" с русского? А когда на C++ пишите – "переводите в уме" с какого? А когда на клавиатуре печатаете текст – "переводите в уме" свои мысли в движения пальцев (и это отнимает у Вас много умственных ресурсов)? _________________ Manwe/SandS
www.manwe.ru |
|
Вернуться к началу |
|
 |
Mikle

Зарегистрирован: 02.12.2008 Сообщения: 432 Откуда: Туапсе
|
Добавлено: Вт Июн 13, 2017 11:27 Заголовок сообщения: |
|
|
Цитата: | наиболее удобоваримый для процессоров вид |
Кстати, этот вид удобен только для FPU, ни x86-x64, ни MMX, ни всякие SSE и 3DNow не работают так со стеком, для этих устройств такая запись не очень удобна.
На сколько вижу по представленным примерам - это обратная польская запись, когда-то очень давно первые советские программируемые калькуляторы программировались похожим образом. |
|
Вернуться к началу |
|
 |
Manwe Администратор сайта

Зарегистрирован: 21.09.2007 Сообщения: 1426
|
Добавлено: Вт Июн 13, 2017 13:32 Заголовок сообщения: |
|
|
Mikle писал(а): | Насколько вижу по представленным примерам - это обратная польская запись, когда-то очень давно первые советские программируемые калькуляторы программировались похожим образом. | Да, я как раз на таком калькуляторе (Электроника МК-61) писал свои первые программы. _________________ Manwe/SandS
www.manwe.ru |
|
Вернуться к началу |
|
 |
Kopa
Зарегистрирован: 02.02.2014 Сообщения: 38 Откуда: Челябинск
|
Добавлено: Чт Июн 22, 2017 23:14 Заголовок сообщения: |
|
|
Manwe писал(а): | Mikle писал(а): | Насколько вижу по представленным примерам - это обратная польская запись, когда-то очень давно первые советские программируемые калькуляторы программировались похожим образом. | Да, я как раз на таком калькуляторе (Электроника МК-61) писал свои первые программы. |
И сейчас есть разработки Приехал DM42 - первые впечатления. |
|
Вернуться к началу |
|
 |
Manwe Администратор сайта

Зарегистрирован: 21.09.2007 Сообщения: 1426
|
Добавлено: Пн Июн 26, 2017 21:29 Заголовок сообщения: |
|
|
А не пробовал "Электроника МК-161"? _________________ Manwe/SandS
www.manwe.ru |
|
Вернуться к началу |
|
 |
Kopa
Зарегистрирован: 02.02.2014 Сообщения: 38 Откуда: Челябинск
|
Добавлено: Пн Июн 26, 2017 21:43 Заголовок сообщения: Forth Haiku |
|
|
Manwe писал(а): | А не пробовал "Электроника МК-161"? |
C программируемыми калькуляторами знаком только по МК-61 и то в институте когда на нём, в основном, вычислялись корни полинома для курсовой по фильтрам
P.S. Мне не совсем понятен "коммерческий" "успех" МК-161.
P.P.S Так называемая "машинно-ориентированная" форма Форт языка применима для решения довольно многих "простых" задач (в прямой работе с памятью, как аналог абстракции-массив) с небольшим оверхедом кода для того чтобы не работать с именованными параметрами (хотя и это возможно стандартно). И что может быть компактнее именования действия словом и "моделирования" работы программы в словах?
И это ещё не все "низкоуровневые" возможности Форт подхода в программировании.
Продолжать?
Кстати на Git находится "много" кода по слову Forth относящегося к Форт языку. Тегом Forth, правда, мало проектов отмечены пользователями.
На sourceforge тоже есть и в других местах i-neta. |
|
Вернуться к началу |
|
 |
Manwe Администратор сайта

Зарегистрирован: 21.09.2007 Сообщения: 1426
|
|
Вернуться к началу |
|
 |
Manwe Администратор сайта

Зарегистрирован: 21.09.2007 Сообщения: 1426
|
|
Вернуться к началу |
|
 |
Mikle

Зарегистрирован: 02.12.2008 Сообщения: 432 Откуда: Туапсе
|
Добавлено: Вт Окт 31, 2017 10:39 Заголовок сообщения: |
|
|
Manwe писал(а): | После восьми месяцев исследований удалось, наконец, уложить код Pong в 255 байт на GLSL |
Попробовал на VB6, уложил в 297 байт - слишком длинные ключевые слова:
Код: | Sub Form_Load
DrawWidth=9
x=99
y=99
a=60
b=20
w=ScaleWidth-90
Show
While DoEvents
t=Timer
While t=Timer
Wend
x=x+a
a=a*((x<w)*(x>90)*2-1)
y=y+b
b=b*((y<ScaleHeight-90)*(y>90)*2-1)
Cls
PSet(x,y),255
Line(0,y-200)-(80,y+200),255,BF
Line(w,y-200)-(w+90,y+200),255,BF
Wend
End Sub |
Если так, то 278 байт:
Код: | Sub Form_Load
DrawWidth=9:x=99:y=99:a=60:b=20:w=ScaleWidth-90:Show:While DoEvents:t=Timer:While t=Timer:Wend:x=x+a:a=a*((x<w)*(x>90)*2-1):y=y+b:b=b*((y<ScaleHeight-90)*(y>90)*2-1):Cls:PSet(x,y),255:Line(0,y-200)-(80,y+200),255,BF:Line(w,y-200)-(w+90,y+200),255,BF:Wend
End Sub |
|
|
Вернуться к началу |
|
 |
Mikle

Зарегистрирован: 02.12.2008 Сообщения: 432 Откуда: Туапсе
|
Добавлено: Ср Ноя 01, 2017 09:11 Заголовок сообщения: |
|
|
На VBStreets добились 253 байта!
Код: | Sub Form_Activate:j=90:x=j:y=x:a=60:b=20:w=ScaleWidth-j:z=255:While DoEvents:t=Timer:While t=Timer:Wend:x=x+a:a=a*(x<w)*(x>j)*2-a:y=y+b:b=b*(y<ScaleHeight-j)*(y>j)*2-b:Cls:Circle(x,y),67,z:Line(0,y-z)-(j,y+z),z,BF:Line(w,y-z)-(w+j,y+z),z,BF:Wend:End Sub |
|
|
Вернуться к началу |
|
 |
|