Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт мар 29, 2024 19:17

...
Google Search
Forth-FAQ Spy Grafic

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




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - Всеобщий ассемблер для форта?
Автор Сообщение
  Заголовок сообщения:   Ответить с цитатой
Код:
: NOP 0x90 TC, ;
Сообщение Добавлено: Пн июн 22, 2009 11:56
  Заголовок сообщения:   Ответить с цитатой
Как это выглядит сейчас?
Сообщение Добавлено: Пн июн 22, 2009 11:50
  Заголовок сообщения:   Ответить с цитатой
Цитата:
Я уже постил тот постфиксный ассемблер, которым пользуюсь.

А где он?
Сообщение Добавлено: Вт июл 17, 2007 14:04
  Заголовок сообщения:   Ответить с цитатой
Гм... ну я скажу так. У меня нет особых проблем с созданием трансляторов Форта под разные архитектуры. Я даже готов "на пальцах" пояснить, как именно это делается - было бы время. Исходя из этих соображений я вижу, что ассемблеры у всех процессоров разные. Для каждого свой форт я бы написал, а вот увязывать их в одну пачку и писать какой-то генератор - тут работа гораздо серьезнее. И все равно придется описать ассемблер каждого из процессоров, а как же? Только в случае независимой работы мы можем свободно делать непереносимые на другой процессор вещи, а при автоматической генерации придется каждый раз смотреть, все ли такое могут сделать. И стоит ли овчинка выделки?
Сообщение Добавлено: Вс июл 15, 2007 23:05
  Заголовок сообщения:   Ответить с цитатой
другими словами -
БОЛЬШОЙ всесторонний язык реализует бесконечное множество алгоритмов
Но - форт - это ОДИН, уже готовый алгоритм, для его реализации достаточно ... можно я не стану заканчивать фразу
Сообщение Добавлено: Вс июл 15, 2007 13:18
  Заголовок сообщения:   Ответить с цитатой
Хищник, как бы это помягче намекнуть, похоже, метаассемблер чем-то напоминает ...
adress(метаассемблер)mail.ru
:D
Неужели основная идея неосуществлённого метаассемблера так слабо выражена?
МЕНЯТЬ ЧАСТЬ ЯЗЫКА (даже не языка, а его реализации), а не делать заново весь, т.к. менять весь не надо - задача ограничена :<
Сообщение Добавлено: Вс июл 15, 2007 13:13
  Заголовок сообщения:   Ответить с цитатой
Дело отнюдь не в навешивании ялыков :) Просто от ложной "политкорректности" можно дойти до появления мертворожденных проектов. Что лучше - обсудить проблемы проекта и заранее выявить неудачные решения, или кивать-соглашаться, пока не получится неработающий/неэффективный/неудобный продукт? А "клопы-то, батенька, не разбирают - магистр или не магистр". Программа получится такая, какая получится, и она не заработает хорошо просто "из вежливости".

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

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

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

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

Ну видимо тот, кто хочет написать унифицированный ассемблер? :)
Сообщение Добавлено: Вс июл 15, 2007 10:59
  Заголовок сообщения:   Ответить с цитатой
Хищник писал(а):
Да нет, это из области "синдрома белой вороны" "У меня пока нет результатов, потому что я решаю очень важную и глобальную задачу"...

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

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

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

А кто сказал, что языки развиваются в сторону унификации(упрощения). Похоже все происходит наоборот, как-бы и кто-бы не хотел обратного.
Сообщение Добавлено: Вс июл 15, 2007 02:11
  Заголовок сообщения:   Ответить с цитатой
вопрос писал(а):
Вот это вот как раз не проблема, т.к. расположение операндов и результата можно выразить в абстрактных терминах.
да и по сути, если учесть изменения регистра флагов, х86 тоже трёхадресный.

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

Вот как раз о чем я и говорю - нету абстрактных терминов, чтобы сделать ассемблер для хотя бы десятка навскидку взятых процессоров. Возьмем слишком широко - процессоры начнут "выпадать", не у всех окажутся нужные регистры и возможности. Возьмем слишком узко - наиболее мощные процессоры будут вынуждены пользоваться малой частью своих возможностей. Есть ли выход? Разумеется, есть - написать Форт :) С учетом особенностей конкретного процессора. Форт сам по себе есть ограничение, он вынуждает нас писать в терминах стековой машины. Разные процессоры имеют здесь разные варианты ускорения, за счет того, что могут упаковать данные в регистры. Но мы осознанно отходим от такого решения, ради того, чтобы писать не на куче ассемблеров, а на одном Форте. Просто нужно, чтобы профессиональный разработчик взял, и аккуратно написал хороший Форт. Это делается один раз для каждого из процессоров, а потом менее квалифицированные программисты могут свободно пользоваться языком - внутри уже есть необходимые улучшения и "обвязки" над наиболее эффективными командами. А тут что получится? Вот пример - свертка массивов. Процессор может вообще не иметь команды умножения, а может иметь сразу умножение с накоплением. Для начала предлагаю рассмотреть вариант такого синтаксиса, который сможет адекватно представить и самый слабый кристалл, и навороченный сигнальник. А умножение с накоплением критично - это всякие мультимедиа, плейеры, цифровые фильтры... вобщем, если будет неэффективно, такой язык просто выкинут после первого взгляда на него.
Сообщение Добавлено: Вс июл 15, 2007 01:00
  Заголовок сообщения:   Ответить с цитатой
к последнему посту 8)
ну так ведь понятно, что речь идет о компромиссе. И по скорости будет ухудшение и по объему кода тоже.
принципиальной разницы нету, двух или трехадресные команды или даже одноадресные. ФВМ достаточно мало требует на самом деле.
Я к тому, что ФВМ не требует особых изысков и всегда можно обойтись одноадресными командами при ее реализации, что достаточно хорошо ложится на много архитектур, пока вроде сильные ограничения на Гарвардской архитекруре процессоров.
а вообще на самом деле я говорю немного о другом, нежели "Вопрос" 8)
Просто захотелось хоть немного конструктива 8)
Сообщение Добавлено: Вс июл 15, 2007 00:53
  Заголовок сообщения:   Ответить с цитатой
Цитата:
Так вот нет его, этого абстрактного представления Элементарно - PPC (и многие другие процессоры) допускают трехадресные команды. Например, add r3, r6, r9.

Вот это вот как раз не проблема, т.к. расположение операндов и результата можно выразить в абстрактных терминах.
да и по сути, если учесть изменения регистра флагов, х86 тоже трёхадресный. :D :o
Сообщение Добавлено: Вс июл 15, 2007 00:47
  Заголовок сообщения:   Ответить с цитатой
chess писал(а):
Похоже на заупокойную, правда, с миром. Правда, никто еще не умер(ничего, у нас умирают и не родившись).

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

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


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

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

А предметная область "штрафного круга" не имеет прав на существование. Аминь.
Сообщение Добавлено: Вс июл 15, 2007 00:20
  Заголовок сообщения:   Ответить с цитатой
Так вот нет его, этого абстрактного представления :) Элементарно - PPC (и многие другие процессоры) допускают трехадресные команды. Например, add r3, r6, r9. И что теперь? Выкинем x86 из рассмотрения (а что, собственно, они смогут сделать с трехадресной командой, если они двухадресные), или капитально урежем возможности PowerpPC? Конечно, можно придумать язык-уродец, который будет через пень-колоду похож на все процессоры, до которых получится дотянуться. Первое действие после ознакомления с ним - плюнуть и на энтузиазме от негативного впечатления написать-таки нормальный ассемблер для одного, второго и третьего из нужных процессоров. Чтобы убедиться, достаточно просто сесть и выписать эти самые команды. А потом взять множество, которое действительно есть у всех из выбранной группы процессоров. И наконец, впечатлиться тем, какие возможности оказались за бортом, с учетом того, что разные процессоры оптимизируются под какие-то применения. На Форте можно упаковать эти ассемблерные команды в форт-определения. А как прикажете делать это в ассемблере?
Сообщение Добавлено: Вс июл 15, 2007 00:17
  Заголовок сообщения:   Ответить с цитатой
Всё же, остаётся одна (даже две) проблемы -
- нужен синтаксис абстрактного представления примитивов, т.к. мы имеем просто ассемблерный код - если просто пронумеровать регистры? (reg_1, reg_2) а действия обозначать как в обычном ассемблере (mov, lea, div) ?
нужно кое-что в этих наборах пояснить, я несколько недоучка в форте и ассемблер подзабыл ...
Сообщение Добавлено: Сб июл 14, 2007 23:26

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


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