User Tag List

Страница 14 из 19 ПерваяПервая ... 101112131415161718 ... ПоследняяПоследняя
Показано с 131 по 140 из 189

Тема: Языки программирования

  1. #131

    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,870
    Спасибо Благодарностей отдано 
    522
    Спасибо Благодарностей получено 
    251
    Поблагодарили
    225 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Для интересующихся родословной языков программирования вот весьма любопытная ссылка
    http://hopl.murdoch.edu.au/findlangu...2&which=byyear

  2. #132

    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,870
    Спасибо Благодарностей отдано 
    522
    Спасибо Благодарностей получено 
    251
    Поблагодарили
    225 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ага! А вот и более точные сведения об этом языке...правильное название PLZ на этом же сайте ( прошу прощения что несколькими минутами раньше высказывал мое давнее заблуждение...многолетний туман загадочности рассеялся для меня только сейчас )
    Итак, знакомьтесь PLZ!
    http://hopl.murdoch.edu.au/showlangu...5&language=PLZ

  3. #133

    Регистрация
    13.03.2005
    Адрес
    Пермь
    Сообщений
    294
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот нашлась такая вещь:
    http://archive.computerhistory.org/r...es/text/Zilog/

    Это сканированные рекламные брошюры 70-х годов.
    Цитата из самой последней:
    PLZ

    PLZ is Zilog's own family of system implementation languages. Designed specifically with the system programmer in mind, PLZ provides an extremely sophisticated structured programming environment. Implemented at two separate language levels and distinct translator packages, PLZ offers a complete solution to microcomputer system programming problems.

    In its highest level, PLZ is a fully block structured language with an IF-THEN-ELSE clause, a case selector (actually implemented in the syntax of the IF statement), block REPEAT and EXIT statements, procedure references and, of course, RETURN's. Data types include BYTE, WORD, INTEGER, SHORT INTEGER and POINTER as well as ARRAYS of any type and RECORD's composed of groupings of the various basic types, arrays, or even other records.

    At this language level, both an Interpreter and a Compiler are available. The interpreter provides a fast and convenient means of program development and debugging, while the highly efficient Compiler generates Z80 Object code.

    For applications requiring total control of hardware resources, a second level of PLZ provides all the block structuring and control conventions of the full compiler, but uses assembly language statements rather than compiler level expressions and assignments. Thus, it acts as PLZ compatible structured assembler and produces code which can be linked directly to modules translated by the compiler.

    Regardless of the scope or complexity of a system programming problem, PLZ will provide a simple, elegant, and complete environment for its solution.

  4. #134

    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,870
    Спасибо Благодарностей отдано 
    522
    Спасибо Благодарностей получено 
    251
    Поблагодарили
    225 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Комиксы это конечно здорово, но похоже это как раз пример того, что когда был сам язык, не было еще инета, а теперь нет уже языка Правда остался патент и к нему описание, но доступ туда только тем, кто является членом, т.е. платит бабки. Так что конкурс на лучшего языкаВУ-кандидата для z80 остается пока что без претендентов.

  5. #135

    Регистрация
    02.02.2006
    Адрес
    Voronezh
    Сообщений
    94
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Решил протестить компиляторы z80 на dhryston'е.

    Вот такие результаты на 10000 запусков:
    z88dk - 3852 ticks ~ 130 dps (c register тоже самое)
    sdcc - 2613 ticks ~ 191 dps (с register тоже самое)
    hitech - 2621 ticks ~ 191 dps
    hitech register - 2607 ticks ~ 192 dps

    Почему hitech без register оказался хуже sdcc я пока не понял.

    Дополнительные замечания. Тестирование проводилось под эмулятором unreal, в исходный текст dhrystone 2.1 были внесены изменения для подстройки под компилятор, так как некоторые фишки не поддерживаются.

    Время измерялось чтением переменной SOS FRAMES.
    Из библиотечных функций внутри теста вызываются только strcpy и strcmp. Оные использованы из собственных библиотек компилятора. Написаны они по-разному, но все на асме, так что тут вроде условия более менее равные.

    Комментарии по возможностям компиляторов:

    hitech откомпилил все с минимальными изменениями.

    sdcc умеет почти все, но не умеет присваивать структуры по значению. Написал для него memcpy на асме через LDIR (hitech LDIR встраивает в сам код).

    z88dk не умеет ряд очень важных вещей, а именно:
    * не поддерживает многомерные массивы. Работу с многомерными массивам в тексте заменил на работу с одномерным через arr[y*width+x]
    * какие-то косяки с typedef. Массивы определять не умеет, тип typedef, являющийся указателем на структуру тоже, не поддерживает.
    * не поддерживает(!) указатели на функции. Это я уже узнал потом, а в тесте эта фича не заюзана, хотя ой как нужна!

    sdcc и z88dk никак не прореагировали на register. Видимо они и так работают на пределе своих сил. А вот для hitech register не пустой звук.

    Исходя также из анализа проведенного Vitamin'ом могу сказать, что Hitech, конечно, лучший. Но вот sdcc отстает от него совсем чуть-чуть. Видимо Hitech просто лучше справляется с подковырками из теста на compiler features, но в реальных программах такое не так уж и требуется.

    Что такое Dhrystone и почему стоит обратить на него внимание:
    http://en.wikipedia.org/wiki/Dhrystone

  6. #136

    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,286
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    39 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от maximk
    sdcc - 2613 ticks ~ 191 dps (с register тоже самое)
    гм. я ожидал худшего результата в связи с любовью этого компилятора к индексному регистру.
    Попробуй скомпилять тест с вот этим вот файлом peephole-оптимизатора (как подключать написано в хелпе компилера)

    Код:
    replace restart {
            ld      iy,%1
            ld      0(iy),#0x%2
            ld      1(iy),#0x%3
            ld      2(iy),#0x%4
            ld      3(iy),#0x%5
    } by {
            ld      de,#0x%3%2
            ld      (%1),de
            ld      de,#0x%5%4
            ld      (%1+2),de
    }
    replace restart {
            ld      iy,%1
            ld      0(iy),#0x%2
            ld      1(iy),#0x%3
    } by {
            ld      de,#0x%3%2
            ld      (%1),de
    }
    replace restart {
            ld      iy,%1
            ld      0(iy),l
            ld      1(iy),h
    } by {
            ld      (%1),hl
    }
    replace {
            ld      iy,%1
            ld      0(iy),c
            ld      1(iy),b
            ld      2(iy),e
            ld      3(iy),d
    } by {
            ld      (%1),bc
            ld      (%1+2),de
    }
    
    replace {
            ld      iy,%1
            ld      0(iy),c
            ld      1(iy),b
    } by {
            ld      (%1),bc
    }
    
    replace {
            jp      %5
    } by {
            ret
    } if labelIsReturnOnly
    
    replace {
            jp      %1,%5
    } by {
            ret     %1
    } if labelIsReturnOnly
    
    replace {
            jp       %5
    } by {
            jr       %5
    } if labelInRange
    
    replace {
            jp       z,%5
    } by {
            jr       z,%5
    } if labelInRange
    
    replace {
            jp       nz,%5
    } by {
            jr       nz,%5
    } if labelInRange
    
    replace {
            jp       c,%5
    } by {
            jr       c,%5
    } if labelInRange
    
    replace {
            jp       nc,%5
    } by {
            jr       nc,%5
    } if labelInRange
    
    replace {
            ld       iy,%1
            ld       a,0(iy)
            ld       iy,%2
            sub      a,0(iy)
            ld       iy,%1
            ld       a,1(iy)
            ld       iy,%2
            sbc      a,1(iy)
    } by {
            and      a,a
            ld       hl,(%1)
            ld       de,(%2)
            sbc      hl,de
    }
    
    replace {
            ld       iy,%1
            ld       a,0(iy)
            sub      a,#0x%2
            ld       a,1(iy)
            sbc      a,#0x%3
    } by {
            ld       hl,(%1)
            ld       de,#0x%3%2
            and      a,a
            sbc      hl,de
    }

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

  8. #137

    Регистрация
    02.02.2006
    Адрес
    Voronezh
    Сообщений
    94
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin
    Попробуй скомпилять тест с вот этим вот файлом peephole-оптимизатора (как подключать написано в хелпе компилера)
    Ну, получилось как у Hitech с register - 2607 ticks. )

  9. #138

    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,286
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    39 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от maximk
    Ну, получилось как у Hitech с register - 2607 ticks. )
    Итого два лидера в команде

    Посмотри полученный код и попробуй подправить файл оптимизатора. Я его писал в расчете на свой тест, у тебя могли другие конструкции использоваться.

  10. #139

    Регистрация
    27.01.2005
    Сообщений
    924
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    193
    Поблагодарили
    154 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А есть у кого исходники-патчи для гнутых утилит под z80 ? gcc и binutils, которые ?
    Если есть - киньте ссылку, хочу глянуть, что это такое.

  11. #140

    Регистрация
    06.05.2006
    Адрес
    Ливны, Орловская обл
    Сообщений
    1,169
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    GCC для Z80 - миф =)
    Довольно много людей пробовало сделать порт.
    http://gcc.gnu.org/ml/gcc-patches/2001-06/msg01546.html тут даже патч есть.
    http://gcc.gnu.org/ml/gcc/2003-05/msg02369.html а вот тут даже московский телефон.
    http://gcc.gnu.org/ml/gcc/2003-03/msg01402.html почему gcc плох/хорош для разных процов.
    Последний раз редактировалось NovaStorm; 30.11.2006 в 09:03.

Страница 14 из 19 ПерваяПервая ... 101112131415161718 ... ПоследняяПоследняя

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

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

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

Ваши права

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