Важная информация

User Tag List

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

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

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,593
    Спасибо Благодарностей отдано 
    2,158
    Спасибо Благодарностей получено 
    130
    Поблагодарили
    96 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

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

    Здравствуйте, уважаемые спектрумисты.
    Хочу поведать вам об одной интересной возможности – разработке для Спека на императивном языке высокого уровня Оберон-2.

    Я занимаюсь Оберон-технологиями уже много лет, и довольно долго варился в собственном соку, тем интереснее будет найти здесь единомышленников, которых заинтересует связка “Оберон + ZX”. Язык ведь очень заслуживающий внимания. Он – собрание здравых и эффективных языковых решений, не мотивированных коммерческими выгодами и сиюминутными платформами. Абстракция от платформы там весьма чувствуется. Я не буду утверждать, что надо всё разрабатывать на Обероне. Нет. Но в качестве минимальной языковой базы, чтобы прочувствовать какие возможности языка незаменимы, а какие от лукавого (хотя мы к ним и привыкли), Оберон чудесно подходит. Он не идеален. Его можно и нужно совершенствовать. Но он уже лучше Си более правильной модульностью (хотя, строго говоря, в Си модульности нет) и автоматической генерацией интерфейсных файлов (аналог *.h). И лучше Паскаля отсутствием лишних BEGIN и более серьёзной кроссплатформенностью (в Обероне системо-зависимые низкоуровневые модули должны быть помечены импортом модуля SYSTEM, предоставляющего набор низкоуровневых возможностей, о модулях на Паскале такого сходу не скажешь). И лучше Delphi отсутствием необходимости дублировать в интерфейсе заголовки процедур. Лучше C++ и Modula-2 наличием сборки мусора и компактной концепцией ООП – расширяемыми записями, защитой динамических типов. Лучше Явы более продуманной модульностью, не ставящей во главу угла классы, а оставляя модули модулями. И лучше C#/Java отсутствием привязки к виртуальной среде с жирными рантаймами и более высокой наглядностью текстов программ. Оберон унаследовал наглядность Паскаля, текст программы на нём очень понятен и не засорён не слишком явными сокращениями.

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

    Оберон – современный язык. Поддерживает такие парадигмы программирования как процедурное, модульное, расширяющее (extensible), объектно-ориентированное, компонентное, системное и рефлективное (reflective programming). Крайне прост в изучении и освоении. Легко воспринимается теми, кто знаком с Паскалем (Информация взята из статьи Р.Богатырёва "Язык Оберон. Краткий путеводитель" http://www.oberon2005.oberoncore.ru/paper/obe_exp.pdf).

    Оберон – это самый маленький и простой язык высокого уровня из всех имеющихся. Уже поэтому он интересен. Но разработка на нём не выглядит такой уж ущербной или извратной, как это можно было бы подумать. Правда, переход с Дельфи или Си на Оберон не столь гладок и предполагает определённую ломку мышления. Это не всегда безболезненно и приятно. Но я, пройдя через этот этап, оцениваю изменения моих качеств, как разработчика, в положительную сторону.

    Судите сами. Полное описание диалекта Оберон-2, например, занимает приблизительно от 16 до 30 страниц (с примерами). (Java – 200 страниц, C# – 1500 страниц; за точность цифр не ручаюсь – только что нагуглил). Он очень хорош для обучения, ибо платформенно и корпоративно нейтрален. Малоизвестность Оберона вызвана не его недостатками, а скорее тем, что классический подход при разработке на Обероне – это не привычная IDE с раскраской синтаксиса + компилятор/линкер, а Оберон-система, которая не вписывается в устоявшиеся стереотипы и которой надо научиться пользоваться, а поскольку выглядит это не так уж и просто и явно, то это серьёзная для многих преграда. Сейчас же такой проблемы нет. Хотя есть много Оберон-систем, работающих как на голом железе, так и поверх других ОС, можно найти компиляторы для различных платформ. Если интересно, расскажу подробнее о средах разработки и компиляторах, с которых стоит начать.

    Упомяну об интересной возможности получить из Оберон-2 программы текст программы на Си или Ява автоматически. Т.е. работая на Си будут трудности с переносом на Яву. Работая на Яве – те же трудности с переносом на Си. Работая на Обероне, мы можем или остановиться на трансляции в компактный нативный код для Win32/Linux, или в текст на Ява/Си, или в .NET CLR. Это тоже возможно. Как видите, современная линия развития ЯВУ это не сверхоптимальная кодогенерация в натив, а наслоение оптимизиторов поверх байт-кода внутри толстых виртуальных машин. Оберон не требует VM, но и может работать поверх неё. Такую кроссплатформенность я считаю настоящей, в отличии от поддельной кроссплатформенности дотнета и явы. Дотнет и Ява для Спека безполезны. Оберон же очень возможен.

    Я знаю, что здесь полно хакеров, которые обожают работу с битами и портами. Что ж, это тоже хорошо, но Оберон силён не этим. Также я предчувствую выкрики, что правильные Z80-кодеры всё делают на асме. Тут тоже не поспоришь. Я не против использовать Оберон в качестве клея к подпрограммам на асме. Это направление тоже интересует. Но больше интересует разработка ровно как алгоритмов, так и приложений независимых, междуплатформенных. Но которые удастся развернуть и на Спеке с его скромными ресурсами.

    Оберон в мире языков высокого уровня напоминает мне Спек в мире компьютеров. Такой же небольшой и малоизвестный для широких масс, но конструктор из него просто замечательный. А языки Оберон-семейства – как клоны Спектрума. Каждый из них чем-то интересен.

    Итак, интересует разработка на Обероне любых вещей, связанных со Спеком. Может кому-то будет интересно разработать на языке из Оберон-семейства эмулятор? Или что-то для самого Спека? Я готов консультировать по Оберон-технологиям. Можете попробовать предложить мне совместный проект (для Спека, или нет) на Обероне. Например, кроссплатформенную игру (включая реализацию для ZX). Если меня это заинтересует, поучаствую.

    О недостатках Оберон-языков. Нету накатанных дорожек, мало готовых решений, средств и главное – массового коммьюнити. Инструментарий для Оберон-разработки не такой проработанный и обжитый, часто приходится допиливать. Если не настроены на это дело и обожаете Visual Studio или Eclipse, видимо, Обероны лучше не пробовать. В применении Оберона к Z80 первым делом может показаться неудобным отсутствие беззнаковых типов. Это верно, их нету. Но это не мешает ими пользоваться. Могу потом рассказать подробнее об этом. Есть множества – это удобное средство для работы с отдельными битами. Рантаймы Оберона? Не нужны и не используются. Динамическая загрузка-выгрузка модулей? Полагаю, это решаемо, хотя часто попросту не нужно. Сборка мусора в пределах 48-64 кб? Нет, в Оберонах её непременное использование не является обязательным. Чаще динамическую память можно не использовать. Если же нужна, построение собственного менеджера памяти с явным выделением и освобождением памяти кажется разумным. Минимальная программа на Обероне для ZX? Можно собрать в несколько сотен байтов размером. Идеально, почти без накладных расходов подходит в качестве структурно-модульного клея между ассемблерными вставками и каркаса для наработки удобных библиотек (вплоть до кроссплатформенных между ZX и другими платформами).

    Чтобы подогреть интерес и показать на что способны Оберон-технологии в применении к ZX предлагаю посмотреть скриншот игры Dash, порта с версии DOS/CGA (Си) на язык Оберон для платформ MS-DOS, Win32, Linux и ZX Spectrum. Также есть ещё идеи и наработки в данной области.

    http://zx.oberon2.ru/dash.htm
    Последний раз редактировалось Oleg N. Cher; 14.03.2012 в 13:14.

  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

Ваши права

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