Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить

Re: Great Cow BASIC

Пт ноя 16, 2018 13:37:57

Еще один, ну изучите же вопрос , а то так и будете сидеть в луже.
ARV, ты кстати аналогичные выводы как и Мурик ляпаешь...
Даже не фантазеры блин, философо-извращенцы...

Re: Great Cow BASIC

Пт ноя 16, 2018 14:31:48

да ляпаю, что ляпается :) ты бы не умничал, а просветил нас: что еще, кроме Си и С++ умеет компилировать avr-gcc? одно из этих двух == ардуино.

Re: Great Cow BASIC

Пт ноя 16, 2018 14:45:34

ARV, да причем здесь гнутый компиль? Иди читай мануал на ардунью - там фреймвок wire а не чистые плюсы.
А теперь разгребай ляпнутое твоим дружком, по его и твоим философическим "рассуждениям" :
Если пишуший в эмоблитсе Мурик - *****, то все кто пишет на эмоблитсе *****ы.
У вас обоих просто феерично_идиотская логика...

Re: Great Cow BASIC

Пт ноя 16, 2018 14:53:54

досик, фреймворк - это лишь обертка над плюсами. все исходники путем переименования файлов и небольшой правки инклюдов собираются затем компилятором так же, как проект на плюсах.
Последний раз редактировалось ARV Пт ноя 16, 2018 15:06:15, всего редактировалось 1 раз.

Re: Great Cow BASIC

Пт ноя 16, 2018 14:59:31

dosikus писал(а):да причем здесь гнутый компиль? Иди читай мануал на ардунью - там фреймвок wire
Глядя на ардуиньий код видно что это плюсы. Или вы путаете ЯП с либами? Еще скажите что Qt это ЯП, а не либа. :)))

Re: Great Cow BASIC

Пт ноя 16, 2018 15:16:32

Садитесь оба, жЫрная двойка.
Но за то хоть насмешили , хоть тяпница удалась.
Захочется еще поумничать - начинайте читать данный топик с 19 поста...

Re: Great Cow BASIC

Пт ноя 16, 2018 15:24:15

dosikus писал(а):Но за то хоть насмешили
Смех без причины сами знаете признак чего.

Re: Great Cow BASIC

Пт ноя 16, 2018 17:08:41

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

Re: Great Cow BASIC

Пт ноя 16, 2018 22:14:36

Господа Пиз****лы!
попрошу вернуться к вышезаданному вопросу
Возьмём Протон
Пишем тупую моргалку
Возьмём Си
Пишем тупую моргалку
Сравниваем размеры hex
Смотрим промежуточные асмовские файлы и охереваем с сишных наворотов

Протоновские файлы за мной, жду сишные. Только уговор! Без всяких оптимизаций, временно (потом посмотрим)

Re: Great Cow BASIC

Пт ноя 16, 2018 23:20:47

koms48 писал(а):Возьмём Протон
Это тема о коровьем бейсике, а не о протоне.
Если хотите доказать что бейсик компилирует код не хуже чем Си, то это уже доказано правда для AVR, которые проиграли STM32 по производительности, но это к обсуждаемой теме не относится.

Re: Great Cow BASIC

Сб ноя 17, 2018 01:25:30

Ладушки, хрен с этим Протоном.
Возьмём корову.
Вопрос остаётся.

Re: Great Cow BASIC

Сб ноя 17, 2018 07:34:22

Если хотите доказать что бейсик компилирует код не хуже чем Си, то это уже доказано

Это фуфло, а не доказательство.
Синтетический код не может вообще ничего доказать. Простые сущности, ЕСТЕСТВЕННО, будут откомпилированы В ТРИВИАЛЬНЫЙ КОД.
А библиотечные функции вообще нет никакого смысла рассматривать. Сначала нужно рассмотреть как сами эти функции были написаны. Вызов же функции, как и передача в нее аргументов, никак не связаны с языком, поскольку имеют детерминированный протокол в самой системе команд МК.

Re: Great Cow BASIC

Сб ноя 17, 2018 11:03:35

koms48, ну, начинай охренивать. Мигалка писана как туториал, ни грамма не оптимизирована...

Листинг
Код:
70:            void interrupt tc_int(void)
0004  00DE     MOVWF 0x5E
0005  0E03     SWAPF STATUS, W
0006  1283     BCF STATUS, 0x5
0007  00A2     MOVWF 0x22
0008  080A     MOVF PCLATH, W
0009  00A3     MOVWF 0x23
000A  2822     GOTO 0x22
000B  280C     GOTO 0xC
71:            {
72:               
73:                if (TMR0IE && TMR0IF) {
0022  1A8B     BTFSC INTCON, 0x5
0023  1D0B     BTFSS INTCON, 0x2
0024  282B     GOTO 0x2B
74:                    TMR0IF=0;
0025  110B     BCF INTCON, 0x2
75:                    ++tick_count;
0026  0AA0     INCF tick_count, F
0027  1903     BTFSC STATUS, 0x2
0028  0AA1     INCF 0x21, F
76:                   
77:                    GPIO ^= LED|LED1;
0029  3003     MOVLW 0x3
002A  0685     XORWF GPIO, F
78:                    return;
79:                }
80:                // process other interrupt sources here, if required
81:            }
002B  0823     MOVF 0x23, W
82:           
83:           
84:           
85:           
86:            void main(void) {
87:               
88:                INTCON |= INTCON_T0IE|INTCON_GIE;
0011  30A0     MOVLW 0xA0
0012  048B     IORWF INTCON, F
89:                OPTION_REG &= ~OPTION_T0CS;
0013  1683     BSF STATUS, 0x5
0014  1281     BCF TMR0, 0x5
90:                OPTION_REG &=~TMR0_PSC;
0015  30F8     MOVLW 0xF8
0016  0581     ANDWF TMR0, F
91:                TRISIO  &= ~(LED|LED1);
0017  30FC     MOVLW 0xFC
0018  0585     ANDWF GPIO, F
92:                CMCON =ALL_DIGIT;
0019  3007     MOVLW 0x7
001A  1283     BCF STATUS, 0x5
001B  0099     MOVWF CMCON
93:                ANSEL=0;
001C  1683     BSF STATUS, 0x5
001D  019F     CLRF ADCON0
94:                GPIO = LED;
001E  3001     MOVLW 0x1
001F  1283     BCF STATUS, 0x5
0020  0085     MOVWF GPIO
95:                while(1)
0021  2821     GOTO 0x21
96:                {
97:               
98:                }
99:               
100:               
101:               return;
102:           }



Исходник

Код:
volatile uint16_t tick_count;

void interrupt tc_int(void)
{
   
    if (TMR0IE && TMR0IF) {
        TMR0IF=0;
        ++tick_count;
       
        GPIO ^= LED|LED1;
        return;
    }
    // process other interrupt sources here, if required
}




void main(void) {
   
    INTCON |= INTCON_T0IE|INTCON_GIE;
    OPTION_REG &= ~OPTION_T0CS;
    OPTION_REG &=~TMR0_PSC;
    TRISIO  &= ~(LED|LED1);
    CMCON =ALL_DIGIT;
    ANSEL=0;
    GPIO = LED;
    while(1)
    {
   
    }
   
   
    return;
}


Добавлено after 28 minutes 30 seconds:
Чутка соптимизировав...

Код:
void main(void) {
   
   
    OPTION_REG &= ~(OPTION_T0CS |TMR0_PSC);
    TRISIO  &= ~(LED|LED1);
    ANSEL=0;
    INTCON |= INTCON_T0IE|INTCON_GIE;   
    CMCON =ALL_DIGIT;
    GPIO = LED;
    while(1)
    {
   
    }
   

}



Код:
86:            void main(void) {
87:               
88:               
89:                OPTION_REG &= ~(OPTION_T0CS |TMR0_PSC);
0021  30D8     MOVLW 0xD8
0022  1683     BSF STATUS, 0x5
0023  0581     ANDWF TMR0, F
90:                TRISIO  &= ~(LED|LED1);
0024  30FC     MOVLW 0xFC
0025  0585     ANDWF GPIO, F
91:                ANSEL=0;
0026  019F     CLRF ADCON0
92:                INTCON |= INTCON_T0IE|INTCON_GIE;   
0027  30A0     MOVLW 0xA0
0028  048B     IORWF INTCON, F
93:                CMCON =ALL_DIGIT;
0029  3007     MOVLW 0x7
002A  1283     BCF STATUS, 0x5
002B  0099     MOVWF CMCON
94:                GPIO = LED;
002C  3001     MOVLW 0x1
002D  0085     MOVWF GPIO
95:                while(1)
002E  282E     GOTO 0x2E
96:                {
97:               
98:                }
99:               
100:           
101:           }

Re: Great Cow BASIC

Сб ноя 17, 2018 11:27:43

всяк кулик своё болото хвалит - вот уже готовые тесты пик паскаля и пр. компиляторов в том числе упомянутого тут васика:
Изображение
исходники тестов:
https://github.com/AguHDz/PicPas-Librer ... mpiladores
круче пик паскаля только ассемблер :)))
Вопрос в том насколько хватит терпения авторов самодельных паскалей и бейсиков поддерживать бесплатно свои поделки, xc8 поддерживается самим производителем, кровно заинтересованным...

Re: Great Cow BASIC

Сб ноя 17, 2018 11:37:27

Ещё одна ветка неугомонных лингвистов :)))
... какая разница на чём и как писать, если в итоге девайс работает как задумано?

Re: Great Cow BASIC

Сб ноя 17, 2018 11:41:11

al.kame еще один коекакер?

Re: Great Cow BASIC

Сб ноя 17, 2018 11:48:01

круче пик паскаля только ассемблер :)))

.... на предмет реализации функции delay()
Ну оооочень авторитетно...
:music:

Re: Great Cow BASIC

Сб ноя 17, 2018 11:54:53

Да уж , чистА испанский тест , прям как сапог инквизиции...

Re: Great Cow BASIC

Сб ноя 17, 2018 14:05:15

КРАМ писал(а):Синтетический код не может вообще ничего доказать.
Тест не синтетический, а математический. :) Он проверяет за сколько тактов выполняются математические действия: сложение, вычитание, умножение и деление, а также получение остатка от деления.
В результате можно узнать эффективность компилятора и библиотек при выполнении вычислений с разным типом переменных. :)

КРАМ писал(а):Простые сущности, ЕСТЕСТВЕННО, будут откомпилированы В ТРИВИАЛЬНЫЙ КОД.
Математика с плавающей точкой двойной точности (Double) это тривиальный машинный код, особенно для простых 8-ми битных МК?

Re: Great Cow BASIC

Сб ноя 17, 2018 17:44:45

Тест не синтетический, а математический.

Синтетичность теста никак не влияет на его математичность. Специфика языков не определяется скоростью выполнения операций присвоения с непосредственной адресацией или математикой. Даже отсутствующие в АЛУ МК математические операции реализуются ШАБЛОННО, независимо от лингвистики языка.
В этом и состоит синтетика тестов. Причем даже без равенства возможностей. Особенно если речь идет о платных компиляторах Си, где уровень оптимизации или настройки могут В РАЗЫ изменить длину кода и/или скорость исполнения.

Математика с плавающей точкой двойной точности (Double) это тривиальный машинный код, особенно для простых 8-ми битных МК?

Безусловно тривиальный. Это просто набор математических действий вписанный в систему команд МК. Где тут вообще язык?
Вот реализация стека протоколов типа (TCP/IP, USB и т.п.), или задачи сортировки данных в ОЗУ, или логически сложные алгоритмы, где нужно совместить читабельность алгоритма с компактностью и/или скоростью исполнения... - это ТЕМАТИЧЕСКИЕ тесты, на основании которых можно предпочесть один язык другому по задаче. Как и выбор самого МК, кстати.
Ответить