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

User Tag List

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

Тема: C compiler

  1. #1
    Junior
    Регистрация
    14.01.2005
    Сообщений
    17
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Question C compiler

    Посоветуйте, плз, сабж под Спекки. Ничего, кроме Hisoft C, в голову не приходит

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

  3. #2
    Junior Аватар для survivor
    Регистрация
    19.02.2005
    Адрес
    Glazov, Russia
    Сообщений
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от vitasam
    Посоветуйте, плз, сабж под Спекки. Ничего, кроме Hisoft C, в голову не приходит
    А ничего больше для спека и не выпускалось, разве что кроссплатформенные компилеры СИ для PC.

  4. #3
    Member Аватар для ArHeY
    Регистрация
    20.03.2005
    Адрес
    623119, Свердловская область, г. Первоуральск, а/я 10
    Сообщений
    47
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от survivor
    А ничего больше для спека и не выпускалось, разве что кроссплатформенные компилеры СИ для PC.
    Можно по-подробнее об этих штуках?
    ... Архив ZxNet: zxnet-archive.ru
    ... Фотогалерея: arhey.org
    ... Блог: urochishe.ru
    --- Lara Croft v 4.5 [Реальщики] [ZXNet] [Speccy rulez] [pc - suxx] [9/I 2000]
    Origin: PENTAGON-512 + YM + 3.5'FDD*2 + 5.25'FDD + C-DOS modem + COVOX (500:3432/3)

  5. #4
    Member
    Регистрация
    28.01.2005
    Адрес
    г. Владимир
    Сообщений
    58
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ArHeY
    Можно по-подробнее об этих штуках?
    1.1 About SDCC
    SDCC (Small Device C Compiler) is a Freeware, retargettable, optimizing ANSI-C compiler by Sandeep Dutta designed for 8 bit Microprocessors. The current version targets Intel MCS51 based Microprocessors (8031, 8032, 8051, 8052, etc.), Dallas DS80C390 variants, Motorola HC08 and Zilog Z80 based MCUs. It can be retargetted for other microprocessors, support for Microchip PIC, Atmel AVR is under development. The entire source code for the compiler is distributed under GPL. SDCC uses ASXXXX & ASLINK, a Freeware, retargettable assembler & linker. SDCC has extensive language extensions suitable for utilizing various microcontrollers and underlying hardware effectively.

    In addition to the MCU specific optimizations SDCC also does a host of standard optimizations like:

    global sub expression elimination,
    loop optimizations (loop invariant, strength reduction of induction variables and loop reversing),
    constant folding & propagation,
    copy propagation,
    dead code elimination
    jump tables for switch statements.
    For the back-end SDCC uses a global register allocation scheme which should be well suited for other 8 bit MCUs.

    The peep hole optimizer uses a rule based substitution mechanism which is MCU independent.

    Supported data-types are:

    char (8 bits, 1 byte),
    short and int (16 bits, 2 bytes),
    long (32 bit, 4 bytes)
    float (4 byte IEEE).
    The compiler also allows inline assembler code to be embedded anywhere in a function. In addition, routines developed in assembly can also be called.

    SDCC also provides an option (--cyclomatic) to report the relative complexity of a function. These functions can then be further optimized, or hand coded in assembly if needed.

    SDCC also comes with a companion source level debugger SDCDB, the debugger currently uses ucSim a freeware simulator for 8051 and other micro-controllers.

    The latest version can be downloaded from http://sdcc.sourceforge.net/snap.php.
    Turbo 2+; Scorpion ZS 256 turbo+

  6. #5
    Member
    Регистрация
    28.01.2005
    Адрес
    г. Владимир
    Сообщений
    58
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ArHeY
    Можно по-подробнее об этих штуках?
    И вот еще для примера вот такая программка:

    #include "chars.h"
    int main()
    {

    unsigned char i,j,k,m;
    m=1;
    i=1;
    while (1)
    {
    //_cls_c();
    ++i;
    for(j=0;j<23;j++)
    {
    for(k=0;k<5;k++)
    {
    _set_pos_c(k,j);//x,y
    _set_attr_c(i++);
    _prn_str_c(" !!ZX Spectrum - FOREVER!! ");
    j++;
    }
    }
    }
    return 0;
    }

    компилируется вот во что:


    ;--------------------------------------------------------
    ; File Created by SDCC : FreeWare ANSI-C Compiler
    ; Version 2.4.0 Fri Apr 15 13:59:27 2005

    ;--------------------------------------------------------
    .module main
    .optsdcc -mz80

    ;--------------------------------------------------------
    ; Public variables in this module
    ;--------------------------------------------------------
    .globl _main
    ;--------------------------------------------------------
    ; special function registers
    ;--------------------------------------------------------
    ;--------------------------------------------------------
    ; ram data
    ;--------------------------------------------------------
    .area _DATA
    ;--------------------------------------------------------
    ; overlayable items in ram
    ;--------------------------------------------------------
    .area _OVERLAY
    ;--------------------------------------------------------
    ; external initialized ram data
    ;--------------------------------------------------------
    ;--------------------------------------------------------
    ; global & static initialisations
    ;--------------------------------------------------------
    .area _GSINIT
    .area _GSFINAL
    .area _GSINIT
    ;--------------------------------------------------------
    ; Home
    ;--------------------------------------------------------
    .area _HOME
    .area _CODE
    ;--------------------------------------------------------
    ; code
    ;--------------------------------------------------------
    .area _CODE
    ;main.c:3: int main()
    ; genLabel
    ; genFunction
    ; ---------------------------------
    ; Function main
    ; ---------------------------------
    _main_start::
    _main:
    push ix
    ld ix,#0
    add ix,sp
    ld hl,#-1
    add hl,sp
    ld sp,hl
    ;main.c:8: i=1;
    ; genAssign
    ld c,#0x01
    ;main.c:9: while (1)
    ; genLabel
    00102$:
    ;main.c:12: ++i;
    ; genPlus
    ; genPlusIncr
    ; Removed redundent load
    inc c
    ;main.c:13: for(j=0;j<23;j++)
    ; genAssign
    ld b,#0x00
    ; genLabel
    00108$:
    ; genCmpLt
    ld a,b
    sub a,#0x17
    jp nc,00102$
    ;main.c:15: for(k=0;k<5;k++)
    ; genAssign
    ld e,c
    ; genAssign
    ; (registers are the same)
    ; genAssign
    ; AOP_STK for _main_k_1_1
    ld -1(ix),#0x00
    ; genLabel
    00104$:
    ; genCmpLt
    ; AOP_STK for _main_k_1_1
    ld a,-1(ix)
    sub a,#0x05
    ld a,#0x00
    rla
    ld d,a
    ; genAssign
    ld c,e
    ; genIfx
    xor a,a
    or a,d
    jp z,00110$
    ;main.c:17: _set_pos_c(k,j);//x,y
    ; genIpush
    ; _saveRegsForCall: sendSetSize: 0 deInUse: 1 bcInUse: 1 deSending: 0
    push bc
    push de
    push bc
    inc sp
    ; genIpush
    ; AOP_STK for _main_k_1_1
    ld a,-1(ix)
    push af
    inc sp
    ; genCall
    call __set_pos_c
    pop af
    pop de
    pop bc
    ;main.c:18: _set_attr_c(i++);
    ; genAssign
    ld d,e
    ; genPlus
    ; genPlusIncr
    ; Removed redundent load
    inc e
    ; genIpush
    ; _saveRegsForCall: sendSetSize: 0 deInUse: 1 bcInUse: 1 deSending: 0
    push bc
    push de
    push de
    inc sp
    ; genCall
    call __set_attr_c
    inc sp
    pop de
    pop bc
    ;main.c:19: _prn_str_c(" !!ZX Spectrum - FOREVER!! ");
    ; genIpush
    ; _saveRegsForCall: sendSetSize: 0 deInUse: 1 bcInUse: 1 deSending: 0
    push bc
    push de
    ld hl,#__str_0
    push hl
    ; genCall
    call __prn_str_c
    pop af
    pop de
    pop bc
    ;main.c:20: j++;
    ; genPlus
    ; genPlusIncr
    ; Removed redundent load
    inc b
    ;main.c:15: for(k=0;k<5;k++)
    ; genPlus
    ; AOP_STK for _main_k_1_1
    ; genPlusIncr
    inc -1(ix)
    ; genGoto
    jp 00104$
    ; genLabel
    00110$:
    ;main.c:13: for(j=0;j<23;j++)
    ; genPlus
    ; genPlusIncr
    ; Removed redundent load
    inc b
    ; genGoto
    jp 00108$
    ;main.c:24: return 0;
    ; genLabel
    00112$:
    ; genEndFunction
    ld sp,ix
    pop ix
    ret
    _main_end::
    __str_0:
    .ascii " !!ZX Spectrum - FOREVER!! "
    .db 0x00
    .area _CODE

    и после линковки оно даже работает
    (см.вложение)
    Вложения Вложения
    • Тип файла: zip main.zip (1,016 байт, Просмотров: 301)
    Turbo 2+; Scorpion ZS 256 turbo+

  7. #6
    Junior Аватар для survivor
    Регистрация
    19.02.2005
    Адрес
    Glazov, Russia
    Сообщений
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ArHeY
    Можно по-подробнее об этих штуках?
    Сам я не большой любитель СИ, особенно на спектруме. Использование языка СИ на ZX мне представляется целесообразной лишь для написания некритичных по времени алгоритмов. Всякие ресурсоемкие демо и one frame e-zines на СИ для спека написать вряд ли получится. Тем не менее, СИ в нектороых случаях может быть лучшим инструментом при создании легко читаемых листингов. Хотя и досталось для ZX небольшое наследие языков высокого уровня (про бейсик я вообще молчу), но зато всевозможных компилеров СИ для процессора z80 под платформой pc существует достаточное множество. Вот например типичный C-compiler под названием "Cross C Standard C Compiler ($) ", который лежит на http://www.softools.com. Правда, как и все истинное буржуинское, прога предлагается в 30-ти дневной лимитированной версии и весит целых 3308 кб. А есть еще кроссплатформенный С-компилятор для различных платформ под названием "z88 Development Kit Open Source z80" на http://www.z88dk.org.
    Последний раз редактировалось survivor; 25.07.2005 в 12:21.

  8. #7
    Member
    Регистрация
    28.01.2005
    Адрес
    г. Владимир
    Сообщений
    58
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Wink

    Цитата Сообщение от survivor
    Сам я не большой любитель СИ, особенно на спектруме. Использование языка СИ на ZX мне представляется целесообразной лишь для написания некритичных по времени алгоритмов. Всякие ресурсоемкие демо и one frame e-zines на СИ для спека написать вряд ли получится. Тем не менее, СИ в нектороых случаях может быть лучшим инструментом при создании легко читаемых листингов.
    и только то? А например системные программы, даже может быть не они сами , а ГУИ/плагины к ним? Ведь достаточно много системок просто не использует всю память спектрума, будучи написанными на асме.
    Цитата Сообщение от survivor
    Хотя и досталось для ZX небольшое наследие языков высокого уровня (про бейсик я вообще молчу), но зато всевозможных компилеров СИ для процессора z80 под платформой pc существует достаточное множество. Вот например типичный C-compiler под названием "Cross C Standard C Compiler ($) ", который лежит на http://www.softools.com. Правда, как и все истинное буржуинское, прога предлагается в 30-ти дневной лимитированной версии и весит целых 3308 кб. А есть еще кроссплатформенный С-компилятор для различных платформ под названием "z88 Development Kit Open Source z80" на http://www.z88dk.org.
    Бейсик не трожь - бейсик - это святое!
    Насчет кросс-компиляции вот лично у меня эдакий морально-этический вопрос:
    Кросс-компилятор будучи практически эмулятором, и даже более.... Должны ли использовать его настоящие спектрумисты. Это ведь практически таже надувная женщина!
    Turbo 2+; Scorpion ZS 256 turbo+

  9. #8
    Master
    Регистрация
    16.01.2005
    Сообщений
    615
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от bob5024
    Кросс-компилятор будучи практически эмулятором, и даже более....
    Какой-же он эмулятор? Компилятор - он компилятор, даже если и кросс. Код-то из него выходит для Z80, а не другого проца. Средства кросс-разработки используются уже очень давно и повсеместно, чего далеко ходить: ЧВ создан при помощи кросс-ассма. И у меня есть некоторые сомнения в возможности повторения этого подвига чисто на ZX.

  10. #9
    Junior Аватар для survivor
    Регистрация
    19.02.2005
    Адрес
    Glazov, Russia
    Сообщений
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от bob5024
    Бейсик не трожь - бейсик - это святое! ...
    Должны ли использовать его настоящие спектрумисты. Это ведь практически таже надувная женщина!
    Вот и получается, что некоторые "настоящие спектрумисты" приравняли бейсик к резиновой женщине, от чего у них ничего не получается и ничего не хочется.

  11. #10
    Member
    Регистрация
    28.01.2005
    Адрес
    г. Владимир
    Сообщений
    58
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от survivor
    Вот и получается, что некоторые "настоящие спектрумисты" приравняли бейсик к резиновой женщине, от чего у них ничего не получается и ничего не хочется.
    ай, малацца! , 5 баллов!
    отквотить чужую фразу так, что смысл меняется на противоположный - был кросс Ц-компилятор - надувная женсчина, стал бейсик
    И вообще, чего ты к Бейсику то докопался, "настоящие спектрумисты" пишут сразу в исполняемом коде, и вся эта ассемблерно-сишная мутотень им вообще никчему!
    Turbo 2+; Scorpion ZS 256 turbo+

Страница 1 из 2 12 ПоследняяПоследняя

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

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

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

Ваши права

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