User Tag List

Показано с 1 по 10 из 173

Тема: Разработка программ и игр для ZX Spectrum на языках Оберон-семейства

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,712
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    Выкидывать или ветвить по значению некоторой константы определения идентификаторов нельзя.
    Не совсем верно. Вот есть "Дубовые требования" ("Oakwood guidelines" – http://smalllinux.sourceforge.net/oberon/oakwood.htm), которые предлагают реализовать макропроцессор. Выглядит это примерно так:
    Код:
    <* SelectorName+ *> — включить
    <* SelectorName- *> — выключить
    
    <* IF условие THEN *>
    строки вашей программы
    <* ELSIF условие THEN *>
    строки вашей программы
    <* ELSE *>
    строки вашей программы
    <* END *>
    Небольшой пример. Допустим, вам надо вычислять по формуле x = x * 2. Вы знаете, что на процессоре А быстрее выполняется вариант INC(x,x), а на процессоре Б — x:=ASH(x,1). Идти на компромисс вы не хотите, и иметь два разных файла для одной программы тоже. Выход такой:
    Код:
    <* IF ProcA THEN *>
      INC(x,x);
    <* ELSE *>
      x:=ASH(x,1);
    <* END *>
    Подобные требования были реализованы в продукте XDS (http://www.excelsior-usa.com/xds.html) (Бесплатный оптимизирующий компилятор Модулы-2 и Оберона-2 для платформ Windows и Linux. Windows-версия имеет собственную среду разработки).

    Никто, наконец, не мешает нам реализовать для Спека диалект Оберона, в котором будут даже алиасы регистров и системные расширения SYSTEM.EI, SYSTEM.DI, SYSTEM.IM2 и так далее. Обероны – это конструктор. А мы ленивы. Потому что Спектрум и творчество это раньше были синонимы. А теперь синонимы это потребительское отношение ко всему, включая экологию, и "делаю то, за что получаю бабки". Целое такое поколение взросло на наших глазах. Поколение скриптописателей. Они уже никогда не будут спектрумистами, не в смысле юзки 8-битной железяки с телевизором, а отношения того не будет. Ни к чему.

    Ситуация с пересечением имен идентификаторов тоже понятна - вместо неймспейсов используются префиксы модулей, что примерно то же самое, и проблему использования модулей с конфликтами имен не исключает.
    Гм, а Вы хотели бы иметь несколько разных модулей ("библиотек"), названных одинаковыми именами и юзать их одномоментно? И называете это неразрешённым конфликтом имён? Давайте всё-таки делать разницу между конфликтами имён в именах модулей и в идентификаторах внутри этих модулей. Ещё раз повторяю: эта проблема в Оберонах решена блестяще. Ссылки я дал выше.
    а для простых смертных, которые для Спеки писали только на asm и Basic. Для всех, то бишь. Вот это дело будет!
    Примерно такая статья по задумке и готовится на http://zx.oberon2.ru/zx-dev.htm. Но пока что-то нету вдохновения. В форумах флеймить это вам не статьи умные писать. Со временем, что-то сделаю, надо думать.

    Сначала программировать на Обероне не нравится. Плюёшься на всё и вся, но вот почему.
    Принятые в Оберон-технологиях ограничения специально жёстко регламентируют огульное и повальное использование каких попало средств платформы (что только способствует переносимости целевого продукта) и языка, который обычно построен по принципу супермаркета (от предоставленных средств глаза разбегаются). Изначально исходник Dash был на Си (Turbo C 2.0, DOS) и был вообще так спаян с DOS, что развод представлялся чем-то невозможным. Теперешний исходник Dash на Си, полученный транслятором Ofront с Оберона выглядит намного более наглядно и платформенно-независимо по сравнению с изначальным вариантом, который писал, кстати, вовсе не ламер. А вы видели исходники Moggy или Phantomas Saga – Infinity? Да, они на Си, но попробуйте переписать их для чего-нибудь ещё. Это надо всё делать заново. Разумеется, на Си тоже можно писать иначе, но почему-то не пишут. А цель портирования Dash была в том, чтобы получить на Обероне исходник главного модуля игры отдельно от машинно-зависимых частей. Это хорошо получается на Обероне, в котором средства отделения мух от котлет достаточно выразительны. Причём эффективность данной языковой платформы – достаточна для разворачивания даже на Спеке. Я это увидел, и этого мне хватило чтобы почувствовать значительную мощь Оберонов. Теперь, подумал я, если бы игру Dash изначально разрабатывали на Обероне со следованием принципов, принятых в Оберон-технологиях (это не только язык или часть языка, это соглашения, конвенции, правила хорошего тона и ещё масса всего, что облегчает жизнь), то сейчас мы бы имели скелет программы настолько хорошо абстрагированной от платформы, что заменить платформенно-зависимые модули, тем самым перенося игру на другую платформу, было бы уже гораздо более простая работа, чем отделять мух от котлет в Дураке, Фантомасе или Могги. В последних эта работа не проделана, и практически даже не начата. Подчеркну, что в основном модуле Dash, где всё бегает, не применяются ifdef’ы или что-либо подобное. При следовании принятым концепциям это попросту не нужно. Да, я изобрёл способ делать не очень динамические игры для Спека, используя языковую Оберон-платформу таким образом, чтобы их можно было более легко развернуть на другую аппаратную платформу. Практически любую. Эффективность полученного Оберон-представления алгоритма – высокая. Достаточная для разворачивания на Спеке. Плюс в этом. Не в самом использовании Спека, его роль здесь не более чем лакмусовой бумажки, показателя высокого качества Оберон-технологий. Вот в чём сила Оберонов. Их красота – в минимальном использовании языковых средств для получаемого представления алгоритмов. Но этому умению надо долго учиться, это подразумевает пересмотр и изменение устоявшихся языковых стереотипов и прижившихся привычек, а этот путь не для тех, кто уже и так всё знает о виртуальных методах, обработке исключений и шаблонах, а также о регистровых парах и флагах со стеком. Надо думать, опять же, что многое из того, что я говорю об Обероне справедливо и для Си, но Си не настолько выразителен. Но если бы к Си++ программисту приставить жандарма, который бил бы по рукам за неправильное использование языковых средств, то это был бы почти идеальный вариант, если закрыть глаза на уродский синтаксис и навесное излишне сложное и перегруженное ООП. Но, заметьте, трудность освоения Си++ радует тех, кто к нему сопричастен, льстит самолюбие и даёт им повод, задрав нос, поучать неофитов: “какой-де мощный язык, понимаешь, целых пять лет учил, и до сих пор ещё учу”. Это же касается и синдрома линукса. Линуксоида просто превозносит тот объём ругательств командной строки, которые он постиг прежде чем ЭТО просто перестало раздражать. А чего плеваться, раз все вокруг твердят как это круто. Если сказать одним выражением, убирая все технические и психологические тонкости, то будет “стадо гонят пастухи”. Вот что обидно.

    НАЧАЛО светлое весны...
    Лесов зеленые МАССИВЫ
    Цветут. И липы, И осины,
    И ели помыслы ясны.
    Себе ПРИСВОИЛ этот май
    Права одеть листвою ветки,
    И целый месяц в душах МЕТКИ
    Он расставляет невзначай...
    И пишется легко СТРОКА,
    И на этюдник рвутся кисти,
    Уходит ЛОЖЬ в обличье ИСТИН,
    И говорю я ей: ПОКА!

    С.А. Маркин.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

Информация о теме

Пользователи, просматривающие эту тему

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

Похожие темы

  1. Разработка ZXOOM
    от Andrew771 в разделе Игры
    Ответов: 666
    Последнее: 16.08.2011, 17:22
  2. Разработка ZXOOM
    от Andrew771 в разделе Графика
    Ответов: 666
    Последнее: 16.08.2011, 17:22
  3. Разработка БК-0101-10
    от CodeMaster в разделе БК-0010/0011
    Ответов: 61
    Последнее: 21.04.2011, 21:13
  4. Подскажите пожалуйста, На каких языках пишутся игры.
    от sevol в разделе Программирование
    Ответов: 168
    Последнее: 14.01.2011, 15:42

Ваши права

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