User Tag List

Страница 11 из 18 ПерваяПервая ... 789101112131415 ... ПоследняяПоследняя
Показано с 101 по 110 из 173

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

  1. #101

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от vinxru Посмотреть сообщение
    Если бы я хотел сделать, то что делаете вы, то внимательно изучал код всех спектрумовских демок. И добивался бы, что бы компилятор создавал такой же код.
    ну это, мне кажется, не реально. Реально подгонять возможности языка под платформу, т.е. корёжить изначальный язык под имеющиеся оптимальные приемы программирования.

  2. #102

    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    11,555
    Спасибо Благодарностей отдано 
    205
    Спасибо Благодарностей получено 
    188
    Поблагодарили
    83 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от vinxru Посмотреть сообщение
    Если бы я хотел сделать, то что делаете вы, то внимательно изучал код всех спектрумовских демок. И добивался бы, что бы компилятор создавал такой же код.
    Что бы мы потом играли в демоверсии игр, вместо игр?

  3. #103

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

    По умолчанию

    Цитата Сообщение от ZEK Посмотреть сообщение
    Код:
    VAR 
         a*:CHAR; 
         b*:INTEGER;
    записывается как
    Код:
    extern char a, int b;
    У господина не было проблем с совместимостью знаковых и беззнаковых char? О, если нет, то Вы явно мало работали на Си. Кроме того, скажите:

    Код:
    extern int a, char *b, c, *d, char* e, f;
    Вы сходу сообразите где что к чему относится? b и c – это оба указатели? а d – указатель или указатель на указатель? А e? А f – это char или указатель на char? Я понимаю, Вы напряжёте мозг и таки догадаетесь, но зачем. Если есть более удобная форма записи. А накапливающийся груз от перенапряжения на мозг в больших проектах ощущали?

    Я здесь присутствующим собираюсь ДОКАЗЫВАТЬ, что их обвинения в моём незнании Си просто смешны. Я вынужден вести такие войны, хотя видит бог как я устаю от таких как Вы на этом и других форумах.

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

    Кстати, Вам будет приятно узнать, что один из архитекторов платформы .NET и Visual Studio – ученик Вирта и оберонщик Клеменс Шиперски (Clemens Szyperski), один из основателей компании Oberon microsystems. Тоже кушать захотел и двигать большие дела.

    http://research.microsoft.com/~cszypers/
    http://www.inr.ac.ru/~info21/info/ob...crosystems.htm

    она их переросла еще в школе во время изучения Тurbo Pascal 3.
    Вот Вам турбопаскаль. И вот. И ещё вот. Такое делают умные оберонщики, которым надоела искусственно раздутая сложность технологий.

    http://sage.com.ua/ru.shtml?e1l9
    http://sage.com.ua/ru.shtml?e1l5
    http://sage.com.ua/ru.shtml?e1l6
    http://sage.com.ua/ru.shtml?e1l3
    http://sage.com.ua/ru.shtml?e1l8

    Теперь буду рад увидеть в ответ нечто подобное, но что сделали Вы. Для Спека или нет, неважно.

    Кстати, первая ссылка это Вольфейнштейн на Обероне. Alone, знаю, ты любишь такие штучки, зацени.

    Цитата Сообщение от alone Посмотреть сообщение
    По поводу if(a=b): все нормальные компиляторы выдают ворнинг.
    1. Не все нормальные компиляторы выдадут ворнинг. Это нормальная себе конструкция в языке Си, разрешённая. Вот в GCC ворнинги по умолчанию вообще выключены, их надо включать, например, командой -Wall
    2. Если даже ворнинг и включен, то реально его просто не заметить в общей куче других ворнингов. А в среднего размера проектах их количество огромно. И исправить ворнинги полностью никто не пытается, хотя бы потому что их добрая половина – в стандартных заголовочных файлах, куда шаловливые ручонки всё же не лезут.

    Я понимаю, привыкнуть можно. Вон Аллен Голуб такой талмудище “Как ходить по минному полю Си, почти ничем не рискуя” написал. Советует в целях снижения риска писать вместо:

    if(a==2)

    if(2==a)

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

    Код:
    WHILE a := b …
    И это правильно, господа. Так и должно быть. Поэтому байки об архаичности BEGIN и VAR будем считать оправданием своего невежества. Кстати, многие из здешних даже не знают что сделано хорошего в Обероне по сравнению с Паскалем в плане убирания лишних BEGIN. К скобкам очень привыкли, уже от чего-то другого начинает колбасить.
    Последний раз редактировалось GriV; 16.03.2012 в 13:32.

  4. #104

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я думаю, что можно. Вариантов масса.

    Надо написать все возможные правила замены кода. (Большинство из них можно вычислить автоматом.) И написать функцию, оценивающую время выполнения программы.

    Далее, применяем все перестановки и считаем время. Возможно алгоритм будет работать сутки, но в результате мы получим максимально рабочий код.

    ---

    Еще есть вариант, написать функцию оценивающую идентичность алгоритмов. Например:

    mov ax, data
    loop:
    shl ax, 1
    jnz loop

    (Допустим, это 4-х битный x86)

    Выполняем эту программу, только в регистры записываем формулы! В которых переменные - это состояние регистров до выполнения команды.

    Выполнена команда MOV
    1) ax0=data0; ax1=data1; ax2=data2; ax3=data3;

    Выполнена команда SHL
    2) ax0=data1; ax1=data2; ax2=data3; ax3=0;

    Далее идет разветвление (jnz loop). Если ноль (AX0|AX1|AX2|AX3 = 0), то повторяется второе действие. Иначе (AX0|AX1|AX2|AX3 == 1) первое. Решаем обе ветви и записываем результат: (AX0|AX1|AX2|AX3) & (вариант 1) | (!(AX0|AX1|AX2|AX3)) & (вариант 2)

    3.1) Цикл закончился
    ax0 = (!(data1|data2|data3|0)) & data1 = !data1 & !data2 & !data3 & data1 = 0
    ax1 = (!(data1|data2|data3|0)) & data2 = !data1 & !data2 & !data3 & data2 = 0
    ax2 = (!(data1|data2|data3|0)) & data3 = !data1 & !data2 & !data3 & data3 = 0
    ax3 = (!(data1|data2|data3|0)) & 0 = 0

    3.2) Цикл продолжился
    ax0 = ((data1|data2|data3|0)) & data2 = (data1|data2|data3) & data2 = data2
    ax1 = ((data1|data2|data3|0)) & data3 = (data1|data2|data3) & data3 = data3
    ax2 = ((data1|data2|data3|0)) & 0 = 0
    ax3 = ((data1|data2|data3|0)) & 0 = 0

    3) Объединяем
    ax0 = 0 | data2 = data2;
    ax1 = 0 | data3 = data3;
    ax2 = 0;
    ax3 = 0;

    4.1) Закончилась вторая итерация цикла
    ax0 = (!(data2|data3|0|0)) & data2 = !data2 & !data3 & data2 = 0
    ax1 = (!(data2|data3|0|0)) & data3 = !data2 & !data3 & data3 = 0
    ax2 = (!(data2|data3|0|0)) & 0 = 0
    ax3 = (!(data2|data3|0|0)) & 0 = 0

    4.2) Цикл продолжился
    ax0 = (data2|data3|0|0) & data3 = (data2 | data3) & data3 = data3
    ax1 = (data2|data3|0|0) & 0 = 0
    ax2 = (data2|data3|0|0) & 0 = 0
    ax3 = (data2|data3|0|0) & 0 = 0

    4) Объединяем
    ax0 = 0 | data3 = data3;
    ax1 = 0;
    ax2 = 0;
    ax3 = 0;

    5.1) Еще одна итерация.
    ax0 = (!(data3|0|0|0)) & 0 = 0
    ax1 = (!(data3|0|0|0)) & 0 = 0
    ax2 = (!(data3|0|0|0)) & 0 = 0
    ax3 = (!(data3|0|0|0)) & 0 = 0

    5.2) Цикл закончился
    ax0 = (data3|0|0|0) & 0 = 0
    ax1 = (data3|0|0|0) & 0 = 0
    ax2 = (data3|0|0|0) & 0 = 0
    ax3 = (data3|0|0|0) & 0 = 0

    6) Следующую итерацию выполнять не надо. Так как условие (AX0|AX1|AX2|AX3) не выполняется. Там точно находятся нули.

    Вот мы и получили формулу нашей программы AX0=0; AX1=0; AX2=0; AX3=0. Аналогичная формула будет у команды MOV AX = 0. Можно автоматом заменять.

    Это простейший случай. Работу любой программы можно описать формулами c использованием всего трех действий И, ИЛИ, НЕ.

    "Регистр до = Регистр после & Регистр после | !Регистр после"

    А доказать равенство этих формул можно с помощью ИСЛ ИЛИ

    (Формула 1) XOR (Формула 2) = 0

    И самое приятное в таком подходе, что можно на выходе получить такие алгоритмы, которые в книгах не написаны. В программе вполне может появится архивация данных. Сама собой.

    Единственное неудобство - этот способ очень ресурсоёмкий, поэтому целиком обработать программу не получится. (Не будет архиватора. ). Придется обрабатывать небольшие кусочки программ. Ну и GPU и кеширование результатов поможет. Что бы дважды не считать, что последовательность SHL + JNZ всегда дает 0.
    Последний раз редактировалось vinxru; 13.03.2012 в 12:52.

  5. #105

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Вы сходу сообразите где что к чему относится? b и c – это оба указатели? а d – указатель или указатель на указатель? А e? А f – это char или указатель на char? Я понимаю, Вы напряжёте мозг и таки догадаетесь, но зачем.
    В мозгу программиста формируется нейронная сеть, которая парсит эти конструкции без участия интеллекта и внимания. Это как ходьба или печать на клавиатуре. Лично я не задумаюсь, как двигать пальцами и где расположены кнопки. Я думаю о слове.

    Лично меня бесят указатели на функцию. Почему void*(*me)(int,int), а не void*(*)(int,int) me. Когда приходится работать с указателем функции на указатель функции, то вообще башню сносит.

  6. #106

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от vinxru Посмотреть сообщение
    Еще есть вариант, написать функцию оценивающую идентичность алгоритмов
    Да, это уже слишком круто для нас


    Цитата Сообщение от vinxru Посмотреть сообщение
    Надо написать все возможные правила замены кода. (Большинство из них можно вычислить автоматом.)
    вот так и предполагается делать.
    Последний раз редактировалось GriV; 16.03.2012 в 13:34.

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

  8. #107

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,867
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    311
    Поблагодарили
    235 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Хотите несколько слов о причинах малой популярности Оберонов? Она прямо коррелирует с огромным количеством малокомпетентных людей, которые слабо разбираются в технологиях и готовы за деньги заниматься чем угодно, и, естественно, превозносить своё болотце.

    Профессора, который в одиночку или в маленьком коллективе разрабатывает операционные системы, компиляторы и бортовое п/о такие здесь светочи разума называют теоретиком, а собственное скриптописательство для 1С в рамках готовых к употреблению технологий – это непременная глубочайшая практика. Деланье ежедневных заплаток на PHP к веб-сайтам потому что кушать хоца – это высокий кодинг, почти искусство. И при этом никто далеко не против прийти сюда и рассказать, какой-де он крутой разработчик, куда-де до него тупым маразматикам без долбаггера.

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

    Я замечал, чем самоувереннее и безапелляционнее высказывается программист, тем чаще он бывает некомпетентен. И наоборот, программист открытый к познанию нового и оттачивающий своё мастерство ежедневно – как правило личность гибкая.

    Никто не хочет понимать как мы работаем БЕЗ препроцессора и БЕЗ пошагового дебаггера? Юзая при этом ДРУГИЕ механизмы, о которых мэйнстримщики не знают и, заметьте, знать не хотят.

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

    а ты полностью соответствуешь своим описаниям

    ссылка моя указывала на человека доказавшего практически, что java на спектруме возможна, да тупо и медленно, но возможна.

    от тебя на просьбу показать "DASH" для спека в исходниках и обьектнике видно только скриншоты нарисованные в пейнте.

    как ты можешь популяризировать чтото не показывая преимуществ?
    а только разглагольствуя какие вокруг тебя собрались дартаньяны и какой ты тут красивый... виконт дебаржелон.
    С уважением,
    Jerri / Red Triangle.

  9. #108

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    вот так и предполагается делать.
    Я это все к тому говорю, что поставленные цели должен решать не синтаксис языка. Я то же могу приделать синтаксис Оберона к компилятору Си. Быстрее от этого компилятор не станет.

    А вот могу приделать к любому компилятору функцию вывода спрайта и оптимизатор. Например к Sinclair Basic. И это даст результат. (Прикрутили уже и даёт.)

    Поэтому лучше говорите - я напишу крутую библиотеку вывода спрайтов, крутой оптимизатор и синтаксис Оберона прикручу.

    ---------- Post added at 12:08 ---------- Previous post was at 12:06 ----------

    Цитата Сообщение от alone Посмотреть сообщение
    Хорошие программисты пишут без ворнингов. 99% ворнингов - это код в хедерах, что ламерство по определению.
    Все inline и template в хеадерах пишутся.

  10. #109

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,867
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    311
    Поблагодарили
    235 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Невозможно такими же методами пиарить Оберон. Потому что от слова Java все млеют (так принято), а от слова Оберон всех заочно плющит.

    Кстати, оскорблять и обвинять в некомпетентности не я первый начал. Надо начать модерацию с тех постов. Если приведёте сюда модераторов, будет только хорошо.
    Да ладно? Да неужели?

    я считал и считаю что единственный ЯВУ имеющий право жить на спеке это Spectrum Basic все остальное - баловство.

    результаты выдаваемые паскалями, явами и прочими хаскеллями мягко говоря скромные.

    результаты выдаваемые С чуть получше что и доказывают испанцы
    С уважением,
    Jerri / Red Triangle.

  11. #110

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

    По умолчанию

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

    Господа, почему бы не считать виды записи с VAR и без VAR – просто равнозначными альтернативами, и хорошо, что они есть, так разнообразнее. Но не надо самоудволетворяться надругательством над конструкцией VAR. Это синтаксический сахар. А 99% времени всё равно уходит не на набирание на клавиатуре слов VAR и BEGIN, а на пошаговую (или не пошаговую) отладку и поиск багов.

    Оберон хорош тем, что программу на нём поймёт любой грамотный инженер. Даже не зная ни одного ЯП. А уж если разберётся...

    А ещё он идеален для обучения программированию. Как самый простой мультипарадигменный ЯВУ.
    Последний раз редактировалось GriV; 16.03.2012 в 13:38.

Страница 11 из 18 ПерваяПервая ... 789101112131415 ... ПоследняяПоследняя

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

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

Эту тему просматривают: 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

Ваши права

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