Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Сб дек 16, 2017 20:55

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 150 ]  На страницу Пред.  1 ... 6, 7, 8, 9, 10
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Сб июл 14, 2007 23:26 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Всё же, остаётся одна (даже две) проблемы -
- нужен синтаксис абстрактного представления примитивов, т.к. мы имеем просто ассемблерный код - если просто пронумеровать регистры? (reg_1, reg_2) а действия обозначать как в обычном ассемблере (mov, lea, div) ?
нужно кое-что в этих наборах пояснить, я несколько недоучка в форте и ассемблер подзабыл ...

_________________
понимаю некоторую бестолковость некоторых вопросов


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6100
Благодарил (а): 14 раз.
Поблагодарили: 96 раз.
Так вот нет его, этого абстрактного представления :) Элементарно - PPC (и многие другие процессоры) допускают трехадресные команды. Например, add r3, r6, r9. И что теперь? Выкинем x86 из рассмотрения (а что, собственно, они смогут сделать с трехадресной командой, если они двухадресные), или капитально урежем возможности PowerpPC? Конечно, можно придумать язык-уродец, который будет через пень-колоду похож на все процессоры, до которых получится дотянуться. Первое действие после ознакомления с ним - плюнуть и на энтузиазме от негативного впечатления написать-таки нормальный ассемблер для одного, второго и третьего из нужных процессоров. Чтобы убедиться, достаточно просто сесть и выписать эти самые команды. А потом взять множество, которое действительно есть у всех из выбранной группы процессоров. И наконец, впечатлиться тем, какие возможности оказались за бортом, с учетом того, что разные процессоры оптимизируются под какие-то применения. На Форте можно упаковать эти ассемблерные команды в форт-определения. А как прикажете делать это в ассемблере?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс июл 15, 2007 00:20 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2095
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 34 раз.
Хищник писал(а):
Супер-форт, ОС, теперь ассемблер Про ВМ вообще молчу, сколько их уже на моей памяти предлагали, с одинаковым итогом.

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

А предметная область "штрафного круга" не имеет прав на существование. Аминь.

_________________
С уважением, chess


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6100
Благодарил (а): 14 раз.
Поблагодарили: 96 раз.
chess писал(а):
Похоже на заупокойную, правда, с миром. Правда, никто еще не умер(ничего, у нас умирают и не родившись).

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

chess писал(а):
А предметная область "штрафного круга" не имеет прав на существование. Аминь.


Не вполне понимаю, что такое "предметная область штрафного круга". Вот мне надо измерить напряжение и выдать его на индикатор. Для этого надо настроить периферию, принять код с АЦП, перевести его в десятичный вид и вывести на индикатор. Это все команды процессора и процедуры. Оно решается в том числе и на Форте - получается определенный список слов, которые нужны. Это одна предметная область. Другая - мне надо сделать веб-сервер с определенными возможностями. Тогда нужны слова для работы с системными библиотеками и драйверами сетевых устройств. Это тоже определенные требования к языку и системе. Автоматизация конвейера, банковская программа, система платежа за телефон или интернет - это все разные предметные области. И требования могут быть настолько противоречивы, что какой-то унификации может просто в принципе не быть. Можно вписать поддержку SQL и сети в 4 кб? Вопрос риторический. А он будет, потому что в задаче "автоматическое включение лампочки" есть требование "размер памяти не больше 4 кб, потому что ПЗУ большего размера уже дороже, чем допустимо". Собственно, и все - пользователь суперуниверсального Форта будет постоянно натыкаться на эти вот ограничения - то размер слишком большой, то производительность слишком мала. Попытка привести в норму одно приведет к тому, что вылезет другое.


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

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
Так вот нет его, этого абстрактного представления Элементарно - PPC (и многие другие процессоры) допускают трехадресные команды. Например, add r3, r6, r9.

Вот это вот как раз не проблема, т.к. расположение операндов и результата можно выразить в абстрактных терминах.
да и по сути, если учесть изменения регистра флагов, х86 тоже трёхадресный. :D :o

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс июл 15, 2007 00:53 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4832
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 52 раз.
к последнему посту 8)
ну так ведь понятно, что речь идет о компромиссе. И по скорости будет ухудшение и по объему кода тоже.
принципиальной разницы нету, двух или трехадресные команды или даже одноадресные. ФВМ достаточно мало требует на самом деле.
Я к тому, что ФВМ не требует особых изысков и всегда можно обойтись одноадресными командами при ее реализации, что достаточно хорошо ложится на много архитектур, пока вроде сильные ограничения на Гарвардской архитекруре процессоров.
а вообще на самом деле я говорю немного о другом, нежели "Вопрос" 8)
Просто захотелось хоть немного конструктива 8)


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6100
Благодарил (а): 14 раз.
Поблагодарили: 96 раз.
вопрос писал(а):
Вот это вот как раз не проблема, т.к. расположение операндов и результата можно выразить в абстрактных терминах.
да и по сути, если учесть изменения регистра флагов, х86 тоже трёхадресный.

А что, у PPC разве нет регистра флагов? Он тогда что, четырехадресный получается? :))

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс июл 15, 2007 02:11 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2095
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 34 раз.
Хищник писал(а):
Да нет, это из области "синдрома белой вороны" "У меня пока нет результатов, потому что я решаю очень важную и глобальную задачу"...

Я не навешиваю ярлыков. Впрочем, это дело сугубо личное.
Хищник писал(а):
Не вполне понимаю, что такое "предметная область штрафного круга".

"Штрафной круг" придумал не я. Это как раз одно из тех "мест", где развивается язык.
Хищник писал(а):
Вот как раз о чем я и говорю - нету абстрактных терминов, чтобы сделать ассемблер для хотя бы десятка навскидку взятых процессоров.

Так всего когда-то не было.
Хищник писал(а):
И требования могут быть настолько противоречивы, что какой-то унификации может просто в принципе не быть.

А кто сказал, что языки развиваются в сторону унификации(упрощения). Похоже все происходит наоборот, как-бы и кто-бы не хотел обратного.

_________________
С уважением, chess


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс июл 15, 2007 10:59 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6100
Благодарил (а): 14 раз.
Поблагодарили: 96 раз.
Дело отнюдь не в навешивании ялыков :) Просто от ложной "политкорректности" можно дойти до появления мертворожденных проектов. Что лучше - обсудить проблемы проекта и заранее выявить неудачные решения, или кивать-соглашаться, пока не получится неработающий/неэффективный/неудобный продукт? А "клопы-то, батенька, не разбирают - магистр или не магистр". Программа получится такая, какая получится, и она не заработает хорошо просто "из вежливости".

chess писал(а):
"Штрафной круг" придумал не я. Это как раз одно из тех "мест", где развивается язык.

Штрафно круг - это лишняя итерация разработки, после которой происходит возврат в исходную точку. С нулевыми результатами, но потерянным временем.
chess писал(а):
Хищник писал(а):
Вот как раз о чем я и говорю - нету абстрактных терминов, чтобы сделать ассемблер для хотя бы десятка навскидку взятых процессоров.

Так всего когда-то не было.

И что, Intel Pentium и Microchip PIC поползут навстречу друг другу, меняя топологию кристалла? Еще раз - процессоры уже разные. Промежуточные языки уже есть - P-код, MSIL.... Форт! :) К ним и можно приводить разные процессоры.... с разной эффективностью.
chess писал(а):
А кто сказал, что языки развиваются в сторону унификации(упрощения). Похоже все происходит наоборот, как-бы и кто-бы не хотел обратного

Ну видимо тот, кто хочет написать унифицированный ассемблер? :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс июл 15, 2007 13:13 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Хищник, как бы это помягче намекнуть, похоже, метаассемблер чем-то напоминает ...
adress(метаассемблер)mail.ru
:D
Неужели основная идея неосуществлённого метаассемблера так слабо выражена?
МЕНЯТЬ ЧАСТЬ ЯЗЫКА (даже не языка, а его реализации), а не делать заново весь, т.к. менять весь не надо - задача ограничена :<

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс июл 15, 2007 13:18 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
другими словами -
БОЛЬШОЙ всесторонний язык реализует бесконечное множество алгоритмов
Но - форт - это ОДИН, уже готовый алгоритм, для его реализации достаточно ... можно я не стану заканчивать фразу

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс июл 15, 2007 23:05 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6100
Благодарил (а): 14 раз.
Поблагодарили: 96 раз.
Гм... ну я скажу так. У меня нет особых проблем с созданием трансляторов Форта под разные архитектуры. Я даже готов "на пальцах" пояснить, как именно это делается - было бы время. Исходя из этих соображений я вижу, что ассемблеры у всех процессоров разные. Для каждого свой форт я бы написал, а вот увязывать их в одну пачку и писать какой-то генератор - тут работа гораздо серьезнее. И все равно придется описать ассемблер каждого из процессоров, а как же? Только в случае независимой работы мы можем свободно делать непереносимые на другой процессор вещи, а при автоматической генерации придется каждый раз смотреть, все ли такое могут сделать. И стоит ли овчинка выделки?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт июл 17, 2007 14:04 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
Я уже постил тот постфиксный ассемблер, которым пользуюсь.

А где он?

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн июн 22, 2009 11:50 
Как это выглядит сейчас?


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн июн 22, 2009 11:56 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6100
Благодарил (а): 14 раз.
Поблагодарили: 96 раз.
Код:
: NOP 0x90 TC, ;


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 150 ]  На страницу Пред.  1 ... 6, 7, 8, 9, 10

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


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

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


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

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