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

User Tag List

Страница 1 из 18 12345 ... ПоследняяПоследняя
Показано с 1 по 10 из 173

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

  1. #1
    Master Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    759
    Благодарностей: 207
    Mentioned
    0 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 в 12:14.

  2. Эти 9 пользователя(ей) поблагодарили Oleg N. Cher за это полезное сообщение:
    AIS (03.03.2012), Andrew771 (04.03.2012), KokaF77 (03.03.2012), Mad Killer/PG (10.03.2012), perestoronin (24.01.2013), Raydac (03.03.2012), siril (03.12.2012), TomCaT (11.12.2012), Valen (03.03.2012)

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

  4. #2
    Master
    Регистрация
    16.08.2005
    Адрес
    Estonia,Tallinn
    Сообщений
    691
    Благодарностей: 408
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    вопрос то в плане ZX всегда прост, тривиален и немногословен и сводится к утверждению - "есть кросс-компилятор или нет кросс-компилятора", по ссылке я увидел что есть компилятор под x86 но не нашел ничего кроме скриншота относящееся к Z80

  5. #3
    Master Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    759
    Благодарностей: 207
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если кратко, то кросс-компилятора из Оберона в код Z80 нет. Разработка производится через Си связкой: фронт-энд BlackBox/Ofront -> бэк-энд SDCC. Но его можно разработать.
    Если подробно, то тут надо писать целую статью. Вот поэтому и дайте мне понять, стоит ли её писать.

  6. #4
    Master
    Регистрация
    16.08.2005
    Адрес
    Estonia,Tallinn
    Сообщений
    691
    Благодарностей: 408
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Если подробно, то тут надо писать целую статью. Вот поэтому и дайте мне понять, стоит ли её писать.
    имхо - надо садиться и писать не спрашивая, так как если будете тут спрашивать, то разочаруетесь в спектруме, спектрумистах, идее, себе и окружающем мире, это русскоязычный форум со своим суверенным подходом, поэтому лучше спрашивать тут когда уже сделано

  7. Этот пользователь поблагодарил Raydac за это полезное сообщение:
    perestoronin (24.01.2013)

  8. #5
    Master Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    759
    Благодарностей: 207
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ага, Raydac (Игорь Мазница, если не ошибаюсь?) Знаю-знаю. И про Ваш Laser Basic для Вашего клона Си тоже слышал. Кстати, и для Оберона его заточил. Почти.
    Но я не согласен с Вами насчёт всего законченного. Есть недоделанный Dash, согласны подождать ещё лет 10 пока его закончу? А если не закончу?
    Тогда, получается, зря я сюда вылез, раз Вы такой требовательный. :-P

  9. #6
    Master
    Регистрация
    16.08.2005
    Адрес
    Estonia,Tallinn
    Сообщений
    691
    Благодарностей: 408
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Тогда, получается, зря я сюда вылез, раз Вы такой требовательный. :-P
    не зря, но вопрос "надо ли это делать?" тут обычно порождает массу флейма и массу вопросов от "специалистов" "а нафига?!", идей как правило дается мало и все силы уйдут на то что бы отбиваться, поэтому лучше выходить сразу с каким то черновиком что бы дать тему для обсуждения имхо

  10. Эти 3 пользователя(ей) поблагодарили Raydac за это полезное сообщение:
    KokaF77 (03.03.2012), perestoronin (24.01.2013), Valen (03.03.2012)

  11. #7
    Master Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    759
    Благодарностей: 207
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Статья по мере написания будет выкладываться здесь: http://zx.oberon2.ru/zx-dev.htm

  12. Этот пользователь поблагодарил Oleg N. Cher за это полезное сообщение:
    perestoronin (24.01.2013)

  13. #8
    Veteran Аватар для Eltaron
    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    1,187
    Благодарностей: 641
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А пример кода можно?
    Все графические возможности - вывод спрайтов и т.п. - они тоже на обероне написаны?
    Граф Дракула наш кумир, патамушта он вомпир!

  14. #9
    Guru Аватар для newart
    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,947
    Благодарностей: 1520
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Если подробно, то тут надо писать целую статью. Вот поэтому и дайте мне понять, стоит ли её писать.
    Лучше компилятор напишите.

    ---------- Post added at 17:13 ---------- Previous post was at 17:12 ----------

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

    Мы тут о спектруме разговариваем, а значит предполгается что мы кодим на Асме и Бейсике. Какие нафиг Явы, СИ и Дельфи?

  15. #10
    Guru Аватар для newart
    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,947
    Благодарностей: 1520
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Оберон в мире языков высокого уровня напоминает мне Спек в мире компьютеров. Такой же небольшой и малоизвестный для широких масс,
    Чего курил? Спектрум второй в мире по известности 8-битный комп.
    Последний раз редактировалось GriV; 16.03.2012 в 09:52.

Страница 1 из 18 12345 ... ПоследняяПоследняя

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

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

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

Похожие темы

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

Ваши права

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