реклама на сайте
подробности

 
 
35 страниц V  « < 22 23 24 25 26 > »   
Reply to this topicStart new topic
> Pascal для AVR
defunct
сообщение Dec 12 2008, 22:27
Сообщение #346


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(Огурцов @ Dec 12 2008, 18:12) *
Знаток си defunct мог бы для приличия скомпилить свой код под gcc, например, для avr, а потом то же самое переложить на if и скомпилить еще раз. И удивиться. И больше никогда дурацкий сишний switch не юзать.

Мимо кассы. Какое отношение конкретный компилятор имеет к возможностям языка?

Все равно, что сказать - возьмите паскаль компайлер от микроэлектроника и попробуйте сложить два "real" аргумента. И протащиться удивиться от результата. И больше никогда дурацкий паскалевский REAL не юзать.

Цитата(Rst7 @ Dec 12 2008, 21:11) *
А потом турбопаскаль научился раздельной компиляции. И Борманд wink.gif придумал библиотеку типа теперешнего VCL, только в текстовом режиме работала.

TurboVision. У меня по ней книжка до сих пор валяется. Классная вещь была - красиво построена.
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Dec 13 2008, 00:07
Сообщение #347


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(ARV @ Dec 12 2008, 18:37) *
просто для вас ламер - это тот, кто не с вами, вот и все. знаем таких, проходили в школе. не хватает лишь лозунга "бей паскальников!"

Не, не так, нужно еще добавить для порядку "бей паскальников, спасай Россию!" lol.gif


Цитата(zltigo @ Dec 12 2008, 19:16) *
Это реально привлекло в программировние людей, многие из которых стали ламерами

Не, я бы сказал, ламерами не становятся, ламерами рождаются.


Цитата(zltigo @ Dec 12 2008, 18:15) *
поскольку на расплодившихся ламеров обратили свое внимание и другие более крутые фирмы и забрали их к себе

В общем, обида, видимо, в том, что на умненьких, беленьких и пушистеньких сишников никто не обращает внимание и к себе не забирает. А я вот вам таки скажу, какой язык программирования самый правильный - идите на job.ru и смотрите цены. Я надеюсь никто из присутствующих не будет спорить с тем, в каком месте находится си/встраиваемый си ?


Цитата(defunct @ Dec 12 2008, 22:27) *
Мимо кассы. Какое отношение конкретный компилятор имеет к возможностям языка?

Утверждаете, что GCC - плохой компилятор ?
Go to the top of the page
 
+Quote Post
defunct
сообщение Dec 13 2008, 01:59
Сообщение #348


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(Огурцов @ Dec 13 2008, 02:07) *
Утверждаете, что GCC - плохой компилятор ?

Нет, gcc хороший компилятор плюс еще и бесплатный, но он имеет и недостатки. Для AVR - это например неэффективная с т.з. быстродейтсвия организация стека и как раз неэффективная генерация кода для switch. Однако, есть компиляторы более эффективно справляющиеся с оператором switch - VS, RVDS, IAR... Может лучше их асм код посмотрим?

Эффективность и правильность работы Real операндов ведь тоже не зависит от языка, это проблема конкретного компилятора.

По оператору варианта. Паскаль не дает возможности выполнения множества вариантов, C - дает.
Вы языки хотели сравнить или компиляторы?

Если первое - тогда почему просто не примете факт - по оператору варианта Паскаль слил?
Есои второе - так скажите наконец - где же взять эффективный компилятор Pascal для AVR? ;>
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Dec 13 2008, 09:16
Сообщение #349


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(defunct @ Dec 13 2008, 01:59) *
Если первое - тогда почему просто не примете факт - по оператору варианта Паскаль слил?

Ничуть, все легко и красиво реализуется на if - не надо без необходимости умножать сущности (с). А вот си слил свой switch по скорости. И если вы не понимаете, почему, почитайте про case самостоятельно. Я скажу более, для МК паскалевский case - самое то. А сишный switch, если вы хотите сказать про его "дополнительные" возможности - красиво заложенные в код грабли.

зы: про компиляторы - смотрите ссылку, которую дали выше, _самостоятельно_
Go to the top of the page
 
+Quote Post
zltigo
сообщение Dec 13 2008, 09:27
Сообщение #350


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Огурцов @ Dec 13 2008, 12:16) *
Ничуть, все легко и красиво реализуется на if - не надо без необходимости умножать сущности (с). А вот си слил свой switch по скорости. И если вы не понимаете, почему, почитайте про case самостоятельно.

Огурцов продолжает нести пургу sad.gif. Сколь-нибудь вменяемый компилятор прекрасно оптимизирует баланс между if() и switch() при этом получая или абсолютно идентичный код для if() и switch() в простых случаях применения, либо много более высокоэффективный по скорости табличный код для сложных switch(). При этом switch() выигрывает и по читаемости (в невырожденных случаях) и всегда по расширяемости.
По второй причине я достаточно часто использую switch() и в вырожденном варианте в качестве 'рыбы' для возможного последующего расширения. Кусок реального исходника:
Код
void ring_parser( Fdata_t *udp )
{
    switch( udp->state )
    {
    case oNHOOK:
            set_state( udp, dIALtONE );
        break;
        
    default:
        break;          
    }
    udp->timer = xTickCount;
}

Причем код при этом получается ни на бит не отличающийся от if()


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Dec 13 2008, 10:30
Сообщение #351


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(zltigo @ Dec 13 2008, 09:27) *
Огурцов продолжает нести пургу

Ничуть, проверено, как и сказал выше на WinAVR-GCC. Вообще, считаю его хорошим компилятором, поэтому всякие "но он имеет и недостатки" не катят. Особенно в форуме AVR/PIC.
Ну а про остальное - вам тоже нужно объяснять чем case от if/switch отличается ? Грустно.

Ссылки на компилеры: (сейчас e-lab стащу)

http://e-lab.de/index_en.html

Embedded Pascal for the AVR http://users.iafrica.com/r/ra/rainier/pasavr.exe

MikroElektronika Advanced Pascal Compiler for AVR #16194 http://www.dontronics-shop.com/mikroelektr...er-for-avr.html

Табличка внизу http://www.computerbase.de/lexikon/Atmel_AVR

Во, ребята отрываются )

Код
Programming in C is:
for(;P("\n").R-;P("|"))for(e=3DC;e-;P("_"+(*u++/8)%2))P("| "+(*u/4)%2);
and hunting for pointer BUGs for ever ...............




Сообщение отредактировал Огурцов - Dec 13 2008, 10:33
Go to the top of the page
 
+Quote Post
zltigo
сообщение Dec 13 2008, 11:16
Сообщение #352


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Огурцов @ Dec 13 2008, 13:30) *
Во, ребята отрываются )

Ну так и отрывались-бы там вместе. Вместо этого начинаете выказывать глупость в местах, где ее способны оценить по "достоинству".


Цитата(Огурцов @ Dec 13 2008, 13:30) *
Вообще, считаю его хорошим компилятором....

Вы многе еще чего "считаете", причем совершенно догматично-безосновательно sad.gif.
Код
    152          void show_mode_if(void)
   \                     show_mode_if:
    153          {
   \   00000000   939A               ST      -Y, R25
   \   00000002   938A               ST      -Y, R24
    154              if( ( mod_flag & MF_MODE_MASK ) == 2 )
   \   00000004   ....               LDI     R30, mod_flag
   \   00000006   8100               LD      R16, Z
   \   00000008   7003               ANDI    R16, 0x03
   \   0000000A   3002               CPI     R16, 2
   \   0000000C   F459               BRNE    ??show_mode_if_0
    155              {    PORTD &= (~(PD_LED_SAW|PD_LED_TRIANGULAR|PD_LED_RANDOM));
   \   0000000E   B302               IN      R16, 0x12
   \   00000010   7F08               ANDI    R16, 0xF8
   \   00000012   BB02               OUT     0x12, R16
    156                  PORTD |= PD_LED_RANDOM;
   \   00000014   9A92               SBI     0x12, 0x02
    157                  srand( (ushort)run_cnt + 1 );
   \   00000016   ....               LDI     R30, run_cnt
   \   00000018   8180               LD      R24, Z
   \   0000001A   E090               LDI     R25, 0
   \   0000001C   9601               ADIW    R25:R24, 1
   \   0000001E   018C               MOVW    R17:R16, R25:R24
   \   00000020   ....               RCALL   srand
   \   00000022   C010               RJMP    ??show_mode_if_1
    158              }
    159              else if( ( mod_flag & MF_MODE_MASK ) == 1 )
   \                     ??show_mode_if_0:
   \   00000024   3001               CPI     R16, 1
   \   00000026   F429               BRNE    ??show_mode_if_2
    160              {     PORTD &= (~(PD_LED_SAW|PD_LED_TRIANGULAR|PD_LED_RANDOM));
   \   00000028   B302               IN      R16, 0x12
   \   0000002A   7F08               ANDI    R16, 0xF8
   \   0000002C   BB02               OUT     0x12, R16
    161                   PORTD |= PD_LED_TRIANGULAR;
   \   0000002E   9A91               SBI     0x12, 0x01
   \   00000030   C009               RJMP    ??show_mode_if_1
    162              }
    163              else if( ( mod_flag & MF_MODE_MASK ) == 0 )
   \                     ??show_mode_if_2:
   \   00000032   2300               TST     R16
   \   00000034   F019               BREQ    ??show_mode_if_3
    164              {     PORTD &= (~(PD_LED_SAW|PD_LED_TRIANGULAR|PD_LED_RANDOM));
    165                   PORTD |= PD_LED_SAW;
    166              }
    167              else
    168              {     mod_flag &= (~MF_MODE_MASK);
   \   00000036   8100               LD      R16, Z
   \   00000038   7F0C               ANDI    R16, 0xFC
   \   0000003A   8300               ST      Z, R16
    169                  PORTD &= (~(PD_LED_SAW|PD_LED_TRIANGULAR|PD_LED_RANDOM));
   \                     ??show_mode_if_3:
   \   0000003C   B302               IN      R16, 0x12
   \   0000003E   7F08               ANDI    R16, 0xF8
   \   00000040   BB02               OUT     0x12, R16
    170                   PORTD |= PD_LED_SAW;
   \   00000042   9A90               SBI     0x12, 0x00
    171              }
    172          }
   \                     ??show_mode_if_1:
   \   00000044   9189               LD      R24, Y+
   \   00000046   9199               LD      R25, Y+
   \   00000048   9508               RET




    174          void show_mode_sw(void)
   \                     show_mode_sw:
    175          {
   \   00000000   939A               ST      -Y, R25
   \   00000002   938A               ST      -Y, R24
    176              switch( mod_flag & MF_MODE_MASK )
   \   00000004   ....               LDI     R30, mod_flag
   \   00000006   8100               LD      R16, Z
   \   00000008   7003               ANDI    R16, 0x03
   \   0000000A   F0B9               BREQ    ??show_mode_sw_0
   \   0000000C   950A               DEC     R16
   \   0000000E   F069               BREQ    ??show_mode_sw_1
   \   00000010   950A               DEC     R16
   \   00000012   F481               BRNE    ??show_mode_sw_2
    177              {
    178              case 2:
    179                  PORTD &= (~(PD_LED_SAW|PD_LED_TRIANGULAR|PD_LED_RANDOM));
   \   00000014   B302               IN      R16, 0x12
   \   00000016   7F08               ANDI    R16, 0xF8
   \   00000018   BB02               OUT     0x12, R16
    180                  PORTD |= PD_LED_RANDOM;
   \   0000001A   9A92               SBI     0x12, 0x02
    181                  srand( (ushort)run_cnt + 1 );
   \   0000001C   ....               LDI     R30, run_cnt
   \   0000001E   8180               LD      R24, Z
   \   00000020   E090               LDI     R25, 0
   \   00000022   9601               ADIW    R25:R24, 1
   \   00000024   018C               MOVW    R17:R16, R25:R24
   \   00000026   ....               RCALL   srand
   \   00000028   C00C               RJMP    ??show_mode_sw_3
    182                  break;
    183
    184              case 1:
    185                   PORTD &= (~(PD_LED_SAW|PD_LED_TRIANGULAR|PD_LED_RANDOM));
   \                     ??show_mode_sw_1:
   \   0000002A   B302               IN      R16, 0x12
   \   0000002C   7F08               ANDI    R16, 0xF8
   \   0000002E   BB02               OUT     0x12, R16
    186                   PORTD |= PD_LED_TRIANGULAR;
   \   00000030   9A91               SBI     0x12, 0x01
   \   00000032   C007               RJMP    ??show_mode_sw_3
    187                   break;
    188
    189              default:
    190                   mod_flag &= (~MF_MODE_MASK);
   \                     ??show_mode_sw_2:
   \   00000034   8100               LD      R16, Z
   \   00000036   7F0C               ANDI    R16, 0xFC
   \   00000038   8300               ST      Z, R16
    191
    192              case 0:
    193                   PORTD &= (~(PD_LED_SAW|PD_LED_TRIANGULAR|PD_LED_RANDOM));
   \                     ??show_mode_sw_0:
   \   0000003A   B302               IN      R16, 0x12
   \   0000003C   7F08               ANDI    R16, 0xF8
   \   0000003E   BB02               OUT     0x12, R16
    194                   PORTD |= PD_LED_SAW;
   \   00000040   9A90               SBI     0x12, 0x00
    195              }
    196          }
   \                     ??show_mode_sw_3:
   \   00000042   9189               LD      R24, Y+
   \   00000044   9199               LD      R25, Y+
   \   00000046   9508               RET


Но это в общем-то Ваши проблемы smile.gif, до тех пор, пока Вы не начнете публично их обсуждать.

Сообщение отредактировал zltigo - Dec 13 2008, 12:35


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
ReAl
сообщение Dec 13 2008, 12:05
Сообщение #353


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(Aesthete Animus @ Nov 12 2008, 19:09) *
То есть, вы уже успели прочитать студентам курс лекций про asm, IAR, avr-gcc, CodeVision, BASCom
Боже упаси!
Как только начинают обучение с "курсов лекций" "по IAR", "по GCC", "по CodeVision" - всё, сливай воду. Для ознакомления с перспективами такого подхода ("... аппараты Бимена. В тех проклятых лентах, которые дали мне образование был предусмотрен спектрограф Хенслера... ... мне скажут, что мой мозг предназначен для Хенслера...") - читать Азимова, рассказз "Профессия" ( "Специальность"? В украинском переводе "Фах", кстати, я очень рад, что он был у дочери в курсе иностранной литературы).


Цитата(defunct @ Nov 17 2008, 01:14) *
вместо goto и метки можно воспользоваться любым оператором цикла и break, производительность от этого не пострадает.

Код
do
{
     .....
     if ( x ) break;
     ....
     if ( y ) break;
     ..
} while (0);


а смотреться будет, на мой взгляд красивше нагляднее.
Нафиг-нафиг. Пробовал в детстве, но аллергией на goto, навязанной излишне академичными книжками, переболел. Даже с комментарием /* while(0) */ в начале возле do { всё равно плохо. Поначалу кажется - "о как красиво". А потом при модификациях вдруг цикл добавить, из которого выходить нужно - и путаница "это тот break или другой"?
Итого где можно выделить в функцию и return (да, аллергии на несколько точек выхода из функции у меня тоже нет), то выделяю, пусть даже она один раз вызывается.
Где обилие локальных переменных данной функции, к которым нужно обеспечить доступ в блоке, затрудняет выделение блока кода в функцию (локальных функций ведь, привет от паскаля, в стандартном С нет, а привыкать к этому расширению gcc не хочу, не так часто надо), там goto.



Цитата(DSIoffe @ Nov 14 2008, 10:04) *
А ссылочка от gotty очень хороша. Рекомендую всем любителям убедительных фраз.
И чем она хороша? Агрессии не меньше, чем в этой теме. Правильные слова - правильны как-то независимо от языка.
Пример про "на паскале вы НЕ МОЖЕТЕ такого написать" - ну извините. Если у кого-то поведение зависит от того, стоит ли рядом кто-то, кто НЕ РАЗРЕШАЕТ гадить где ешь - то это его личные проблемы.
Точно так же можно ругать какой-то естественный человеческий язык за многообразие конструкций и оттенков (их ещё и понять может быть тяжело человеку, плохо знающему этот язык! он же ещё и жидкость для ухода за кожаными кошельками может на щёки себе натереть!!!). На человеческом языке поэты могут писать стихи, основанные на игре звучания слов практически без какого-либо смысла, учёные могут писать сложные тексты, непонятные школьникам (ничего, подучатся и поёмут, если захотят, зато между учёными коммуникация эффективнее, чем если бы они пытались писать "понятно для всех"), а можно и ругательства на стенах баллончиком с краской писать. Давайте запретим эти языки, как "растлевающие малолетних".
Там правильно в начале сказано про
Цитата
проблему нехватки квалифицированных специадистов с "правильно поставленными мозгами"
- но это проблема не "использования языка С", а обучения им пользоваться, так же как и обписанные да обписянные подъезды - проблема не человеческого языка как такового. Более того, там же сказано (стр. 6)
Цитата
даже если школьники прошли какие-то школьные курсы ... "постановка мозгов" им в школе (за редкими исключениями) нередко оказывается выполненной настолько неправильно ... , что послежствия ощущаются годы
- а ведь в школе не С и не С++ дают, а Паскаль. Значит - не панацея и даже не облегчает ничего.
Кстати, как вам конструкция "за редкими исключениями нередко оказывается" - я об неё споткнулся.
Может, автору надо изучить вместо русского какой-то другой язык? В котором "он НЕ МОЖЕТ такого написать"? Или "за редким исклдючением" касалось слов "в школе" а не "оказывается выполненной"?

Что касается паскаля... Язык как язык.
Можно и на нём закрутить нерабочий текст с трудно отыскиваемыми ошибками.
Можно и на нём работать в малых объёмах (да какая-то мега128 с внешней ОЗУ-шкой и тем более ARM имеют ресурсов больше, чем "Robotron-1715" на Z80 с CP/M и паскалем или чем "Электроника-60"/"ДВК-2", для которых тоже на паскале писалось). Ну если иметь подходящий компилятор. А если их нет - то хоть в ООН жалуйся на маркетологов и издательства, которые "служат усилителем", легче не станет.

Писал когда-то парень по соседству для "Электроники-60" на паскале интерпертатор языка управления лабораторной установкой с КАМАК-ом. Насколько я помню, треть программы - асмовые вставки, и не только в кусках обмена с аппаратурой. Но "самый верх" - на паскале довольно красивый получалося. А когда я выбирал для себя на чём более-менее окончательно остановиться, я пописал немного и на паскале, и на С, посравнивал генерируемый код. У паскаля он был гораздо страшнее. Особых оптимизаций тогда не на чём было делать, а С оказался гораздо ближе к реальным процессам.
Убедился, что на С мне в большинстве случаев удастся обойтсиь без асм-вставок (он их и не позволял), а если вдруг таки надо будет - то одну-две подпрограммы на ассемблере просто напишу. Вот и всего выбора. begin/end на него вообще не повлияли :-)

Сейчас у дочери в школе паскаль - ну и нормально. Главное что не бейсик, как в предыдущей. Может даже лучше, что не С - весь С всё равно не дадут, а с укороченного подмножества потом переучиваться может оказаться труднее, как совсем новое пойдёт органичнее.
Показал и как множествами пользоваться, и вложенными функциями (почему-то в школе это опустили).


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
Aesthete Animus
сообщение Dec 13 2008, 14:50
Сообщение #354


Местный
***

Группа: Свой
Сообщений: 222
Регистрация: 9-06-07
Пользователь №: 28 317



Цитата(ReAl @ Dec 13 2008, 15:05) *
Боже упаси!
Как только начинают обучение с "курсов лекций" "по IAR", "по GCC", "по CodeVision" - всё, сливай...

В тех моих словах должно было звучать бурлеско...
Go to the top of the page
 
+Quote Post
ReAl
сообщение Dec 13 2008, 15:02
Сообщение #355


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(777777 @ Dec 8 2008, 15:35) *
Неповоротливость, как и гибкость, зависят только от языка, но никак не от компилятора. Почему, например, для перевда буквы в нижний регистр нельзя просто установить бить 0x40, как в Си (c |= 0x40), а надо сначала получить код символа, выполнить с ним арифметическую операцию, а потом преобразовать опять в символ?
Ну, вообще говоря, и на С часто (и правильно) рекомендуется делать это через ctype.h tolower(), а не врукопашную битиками жоглировать.



Цитата(Aesthete Animus @ Dec 13 2008, 16:50) *
В тех моих словах должно было звучать бурлеско...
ф-ф-ф-ф-фуууухххх...


Цитата(ARV @ Dec 10 2008, 10:17) *
P.S. Во времена популярности Turbo C и Turbo Pascal неоднократно раскручивал "Сишников" (я тогда был студентом-адептом паскаля) на тест: экзешник хелловорда на паскале всегда получался на 12-15 килобайт меньше, чем на паскале smile.gif а заполнение экрана посимвольно всегда завершалось быстрее, чем при сишной реализации. и это повергало Сишников (стаж работы годы против моих студенческих дней) в уныние, которое они "обоснованно" (при помощи Тurbo Debugger-а) доказывали тем, что printf Cи использует "стандартную" функцию MS DOS для вывода на дисплей, а "нестандартный паскаль" напрямую через прерывание BIOS действует. smile.gif не правда ли, все это вызывает смех сейчас, когда хелловорд на любом языке перевалил за сотню килобайт и на трехгигагерцовом пне запускается порой 1,5 секунды smile.gif

1) как это на 12-15 ??? На паскале занимало минус 6-9 килобайт?
Специально достал старючий компакт и развернул TURBOC20
Код
#include <stdio.h>

int main()
{
    printf("Hello, %s!\n",  "world");
    return 0;
}

>tcc -mt h.c
>dir h.exe

Код
13.12.2008  16:36             6 548 H.EXE

Кстати, mingw32-gcc даёт файл 6144 байт.

2) Нестандартность вывода через биос приводит к тому, что в принципе вроде бы и консольная программа, а вывод в файл не перенаправить. Приходилось print screen делать.
в качестве стёба - теперь я знаю, кто мне присылает скриншоты выдачи avreal вместо перенаправленного в файл вывода - привыкшие к этому на турбопаскальных программах
Но если очень хотелось, то и на турбо-С можно было работать через биос
Код
#include <conio.h>

int main()
{
    сprintf("Hello, %s!\n",  "world");
    return 0;
}

Код
13.12.2008  16:48             6 098 H1.EXE

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


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Dec 13 2008, 15:37
Сообщение #356


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(zltigo @ Dec 13 2008, 11:16) *
Ну так и отрывались-бы там вместе. Вместо этого начинаете выказывать глупость в местах, где ее способны оценить по "достоинству".

Это не моя "глупость". К сожалению. Но шарж этот на си весьма нравится.

Цитата(zltigo @ Dec 13 2008, 11:16) *
Вы многе еще чего "считаете", причем совершенно догматично-безосновательно sad.gif.

Только не безосновательно, а бездоказательно - приводить здесь какие-то доказательства - пустая трата времени. Зевак (или жевак) выше хорошо про это написал. А вот основания "считать" как раз есть - личный опыт. И я ему верю, исходя из личного опыта )))


Цитата(ReAl @ Dec 13 2008, 12:05) *
если иметь подходящий компилятор. А если их нет - то хоть в ООН жалуйся на маркетологов и издательства, которые "служат усилителем", легче не станет.

Зачем же в ООН. Компилятор паскаля не на много сложнее хорошего программатора wink.gif
Go to the top of the page
 
+Quote Post
Aesthete Animus
сообщение Dec 13 2008, 15:47
Сообщение #357


Местный
***

Группа: Свой
Сообщений: 222
Регистрация: 9-06-07
Пользователь №: 28 317



Цитата(Огурцов @ Dec 13 2008, 18:37) *
Это не моя "глупость". К сожалению. Но шарж этот на си весьма нравится.

Гыгыгы... Вам сюда: http://www.ioccc.org/main.html :-D
Вот только подобное не имеет отношение к программированию на Си. Писать такой код, подобно пайке при включенном питании, то есть тому, за что сиюжеминутно следует отрывать руки.
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Dec 13 2008, 16:01
Сообщение #358


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(Aesthete Animus @ Dec 13 2008, 15:47) *
Вот только подобное не имеет отношение к программированию на Си.

Имеет, имеет. И даже обфускаторы для этого не нужны )
Или можете привести такое же для паскаля ? Давайте, вместе посмеемся.
Go to the top of the page
 
+Quote Post
ReAl
сообщение Dec 13 2008, 16:06
Сообщение #359


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(ARV @ Dec 11 2008, 12:57) *
ок. можем переиграть условия. вот код, 1 в 1 аналогичный предложенному "другими" людьми:
Код
var
    c : char;
begin
  repeat
    read(c);
    write(c);
  until c = #$0d;
end.
размер exe-шника из-под Delphi7 15360 байт. скажите, не говорит ли это о том, что результат из-под Паскаля как минимум не хуже Сишного ни по размеру итогового файла. ни по скорости его исполнения?
А как там с переносимостью/ошибкоустойчивостью с указанием явной константы вместо символа конца строки? wink.gif А то как ch |= 0x40, так надо locase()/tolower(), а тут уже можно #$0d вместо '\n' ?
Аналог предыдущего с ограничением длины строки
Код
#include <stdio.h>

int main()
{
    char buf[32];
    fgets(buf, 31, stdin);
    puts(buf);
    return 0;
}
mingw32-gcc - 6144 байта.
О полной идентичности работы говорить тяжело - с перенаправлением в любом случае можно на вход получить файл вместо консоли и при этом while( putchar(getchar()) != '\n' ) ; (независимо от того, написано так или как ранее с промежуточной переменной и do {} while ) будет работать некорректно в случае файла, не содержащего '\n' - застрянет в вечном цикле.
Что она и делает. И паскальская (BP7, других нет) тоже, только она ещё и по Ctrl-C не снимается, в отличие от С-шной.


Цитата(ARV @ Dec 11 2008, 12:57) *
P.S. самое странное, что действительно, при этом коде вывродится 2 строки, как у gotty! если поначалу я подозревал, что тут какой-то подвох с его стороны, то теперь я сам не понимаю. как это возможно... судя по всему, дело в буфферизации ввода-вывода ОС... однако, это по-моему, странно sad.gif
консоль традиционно построчно-буферизованная.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Dec 13 2008, 16:14
Сообщение #360


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Посмотрел компиляторы по ссылкам выше.

Embedded Pascal for the AVR - похоже, старенький, сыренький и к тому же мертвенький.
e-lab - довольно большой дистрибутив, а возможности не очень впечатлили, и какой-то заморочный, требует напряга. Разбирайтесь сами.
MikroElektronika Advanced Pascal Compiler for AVR - ничотак, на первый взгляд все по уму, вполне может быть взять за отправную точку.
Go to the top of the page
 
+Quote Post

35 страниц V  « < 22 23 24 25 26 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 3rd August 2025 - 06:22
Рейтинг@Mail.ru


Страница сгенерированна за 0.01597 секунд с 7
ELECTRONIX ©2004-2016