forever failure 0 14 ноября, 2008 Опубликовано 14 ноября, 2008 · Жалоба Господа пасквилянты, чем в попу тарахтеть, какой прекрасный ваш паскаль, лучше приведите пример рабочего кода, хоть бы под тот же АВР, а потом и сравним его с сишным. И скомпиленную прошивку тоже сравнить неплохо было-бы. А то просто флуд и балабольство получается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kopa 0 14 ноября, 2008 Опубликовано 14 ноября, 2008 · Жалоба Давно подозревал, что в системе образования в России большие проблемы, но думал, что все так дурно и в головах "ученых". А как с этим в системе образования Latvia P.S. Не поймите превратно. Образование, бывает, формируется в привязке к технологиям крупных продавцов рынка:) с С, С++, Pascal - это всё продаваемые системы программирования MS, Borland и др. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Pasha 0 14 ноября, 2008 Опубликовано 14 ноября, 2008 · Жалоба С, С++, Pascal - это всё продаваемые системы программирования MS, Borland и др. Таак. Пора звать R.Stallman&Co. Пусть юноше набьют. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kopa 0 14 ноября, 2008 Опубликовано 14 ноября, 2008 (изменено) · Жалоба Господа пасквилянты, чем в попу тарахтеть, какой прекрасный ваш паскаль, Эка Вас как перекосило:). P.S. Что Pascal, что С - для меня они из одной обоймы. А профессионально можно использовать хоть тот, хоть другой :beer: А эволюцию выигрывают Java, C#, + скриптовые языки и специализированные языки. Таак. Пора звать R.Stallman&Co. Пусть юноше набьют. Ага, при том, что мне "священные войны" Pascal vs C нетрогают. У меня есть своя любимая песочница Forth. GCC почти не использую. P.S. Хотите высказаться по существу? Странно что еще не вспомнили Виртовсую Мodula и европейские традиции в программировании. Изменено 14 ноября, 2008 пользователем Kopa Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
defunct 0 14 ноября, 2008 Опубликовано 14 ноября, 2008 · Жалоба Мне так удобнее, т.к. я знаю Паскаль лучше, чем BASIC/C#/Perl гм. А что такое Perl? не скриптовый клон паскаля часом, а? :) Другой пример. Допустим, юзаем АРМ. Допустим, имеется код одной какой-нибудь функции, которая располагается (и, соответственно, выполняется) в оперативной памяти, а другая располагается и работает во флешь. ну и в чем проблема? ;> поступаем как Keil решил эту задачу в CA: procedure ramfunc(..);__ram; begin end; накрайняк процедурный тип в паскале есть, выделяем память в RAM - копируем туда код из флеш и выполняем. В случае Паскаля, у меня выбора вообще нет! Ему (Паскалю) все едино, для всех случаев жизни там один подход, который мне неподконтролен. Я юзаю чисто стриговые переменные, которые сами как-то там работают, сами как-то перераспределяют память. Если же я буду работать не со стрингами, а с буферами, то это будет не Паскалевский подход, а как раз си-шный. Тогда преимущество Паскалевских строк становится сомнительным и вопрос выбора языка отпадает. не совсем так. Объявление типов коротких стрингов никто не отменял. type smallstr = string[32]; // занимает 33 байта памяти str[0] - длина, str[1..32] - чары shortstr = string[8]; // занимает 9 байт памяти str[0] - длина, str[1..8] - чары var s1 : string; s2 : smallstr; s3 : shortstr; begin s1 := s2 + s3; // <- легальная конструкция. if (s2 = s3) then // <-- легальная конструкция ... здесь должны рассматриваться вопросы Си и Паскаля применительно к МК. Применительно к МК я свою точку зрения уже высказал, в общем-то она совпадает с вашей. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kopa 0 14 ноября, 2008 Опубликовано 14 ноября, 2008 · Жалоба Возможно, кому то, сылка пригодится:) Embedded Pascal AVR Area http://users.iafrica.com/r/ra/rainier/pAVR.htm Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Pasha 0 14 ноября, 2008 Опубликовано 14 ноября, 2008 · Жалоба Возможно, кому то, сылка пригодится:) Это точно, что :) :) Там, похоже, все на нулевом цикле осталось. Усадку фундаменту дают, понимаш. P.S. Хотите высказаться по существу? Если это - мне, то я просто типошучу. А так, меня тоже Паскаль vs C не трогают. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zhevak 0 14 ноября, 2008 Опубликовано 14 ноября, 2008 · Жалоба Извините за оффтоп, не удержался, в тему холливара Pascal vs C/C++: Из доклада "Система образования как фактор национального суверенитета в сфере информационных технологий" (стр 12) Спасибо за ссылку. С одной строны, я поржал от души, а с другой строны неприятно осознавать, что в руководстве страны сидят такие жопоголовые кормчие. Я вижу здесь три грубейшие ошибки. Все остальное -- производное от них. Поэтому комментировать тут нечего. Ошибки: 1. Данный документ родили товарищи-адепты Паскаля, а не адепты Си/Си++. 2. В качестве консультанта был приглашен Н.Вирт, а не Ритчи или Страуструп. 3. На своем заседании они пили явно не ту водку. Как следствие, докумен получился однобокий и тенденциозный. Очень напоминает истерию Советского Союза на Американские угрозы. Короче -- в жопу этот трактат. ЗЫ, а что, правда было бы прикольно, еслиб Н.Вирт поносил бы свои языки (Паскаль, Модула, Оберон), а ратовал за Си. А вы что хотели услышать от этой братии? поступаем как Keil решил эту задачу в CA: procedure ramfunc(..);__ram; begin end; накрайняк процедурный тип в паскале есть, выделяем память в RAM - копируем туда код из флеш и выполняем. Нет, нет, Уважаемый! Вы меня непоняли. Я просил реальную конструкцию, а не гипотетическую. Уточняю -- если Вы привели этот код, то назовите в каком компиляторе какой версии это было написано. Подозреваю, что такого компилятора реально не существует. Разубедите. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
msalov 0 14 ноября, 2008 Опубликовано 14 ноября, 2008 · Жалоба Спасибо за ссылку. С одной строны, я поржал от души, ... Ради этого и приводил ссылку, а так же ради того что бы помочь (если надо) осознать, что подобного рода холливары исключительно забано наблюдать со стороны :) Неужели так принципиально кому-то что-то доказать? Ну а студентам нужно предложить выбор, пусть сами решают на чём писать. (исключительно моё мнение, как человека не связанного с системой образования) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
defunct 0 14 ноября, 2008 Опубликовано 14 ноября, 2008 · Жалоба Нет, нет, Уважаемый! Вы меня непоняли. Я просил реальную конструкцию, а не гипотетическую. ОК вот не гипотетический код: const MAX_CODE_SIZE = 128; type int_func = function( a, b : integer): integer; function sum( a, b : integer ): integer; begin result := a + b; end; function mul( a, b : integer): integer; begin result := a * b; end; function StackFrameLauncher( flash_func : int_func; a, b : integer ) : integer; var stack_frame : array[0..MAX_CODE_SIZE - 1] of char; begin if ( pointer( @flash_func ) = Nil ) then result := 0 else begin CopyMemory( pointer(@stack_frame), pointer( @flash_func), MAX_CODE_SIZE ); result := int_func( @stack_frame )( a, b ) end end; begin WriteLn( IntToStr ( StackFrameLauncher( sum, 6, 8 ) ) ); WriteLn( IntToStr ( StackFrameLauncher( mul, 6, 8 ) ) ) end. Подозреваю, что такого компилятора реально не существует. Разубедите. __ram конструкция ни одним Паскаль-компилятором не поддерживается, но тем не менее если бы была на то необходимость (были бы комиляторы с Паскаля под ARM) ее бы несомненно реализовали. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zhevak 0 14 ноября, 2008 Опубликовано 14 ноября, 2008 · Жалоба to defunct Код написан качественно, наглядно, понимабельно. Но ответ не полный. Пожалуйста, назовите компилятор и его версию. Результат в пользу Паскаля пока не засчитывается. Ключевая фраза выделена [qoute]__ram конструкция ни одним Паскаль-компилятором не поддерживается, но тем не менее если бы была на то необходимость (были бы комиляторы с Паскаля под ARM) ее бы несомненно реализовали. Значит, такой потребности нет. Была бы необходимость, так и на Фортране были бы введены соответствующие механизмы, которые позволяли бы писать на нет драйверы. Однако ж по какой-то причине их нет. Интересно, что за причина? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
defunct 0 14 ноября, 2008 Опубликовано 14 ноября, 2008 · Жалоба назовите компилятор и его версию. Приведенный пример скопилировал в Delphi7. Значит, такой потребности нет Верно - потребности в нем нет, тут я с Вами согласен. Писать на паскале, басике и т.п. под МК - кощунство. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zhevak 0 14 ноября, 2008 Опубликовано 14 ноября, 2008 · Жалоба Приведенный пример скопилировал в Delphi7. Вот то-то и оно, что код будет скомпилирован не для АРМов, как я просил. Меня не интересует Паскаль для компов. Меня интересует (1)Паскаль для МК и (2) какие ОС были написаны на Паскале. Верно - потребности в нем нет, тут я с Вами согласен. Писать на паскале, басике и т.п. под МК - кощунство. Абсолютно согласен! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
777777 0 14 ноября, 2008 Опубликовано 14 ноября, 2008 · Жалоба От себя могу назвать только одну ОС, которая изначально была написана на Паскале. Это -- всем известная Windows. Редкостный бред, десятилетиями годами кочующий из одного форума в другой. В память о неблагополучном прошлом весь мир получил в наследство паскалевские вызовы API Window. Паскалевские вызовы были введены из-за того, что по этому соглашению легче вызывать callback-функции, которыми изобилует система. А язык Си... он вымер, уж простите. Да уж, смешнее не скажешь. Я долго хохотался. Ооо, скажите, а вот я принципиально стараюсь писать циклы как do{...}while(--var); и постоянно пользую goto. Вы не поскажете, у меня может тоже психические отклонения какие? :) Пожалуй да. Потому что цикл do используется только когда он должен выполниться хотя бы один раз. Как вам удается его применять везде - для меня загадка. Что же касается постоянного использования goto - то будь я на месте вашего работодателя, я вас немедленно бы уволил. Потому что от программы недостаточно чтобы она работала, нужно чтобы ее мог легко понять другой программист. Извините за оффтоп, не удержался, в тему холливара Pascal vs C/C++: Из доклада "Система образования как фактор национального суверенитета в сфере информационных технологий" (стр 12) Теперь понятно почему мы до сих пор в такой жопе... :( 2. о цикле for - кто мешает использовать while или until? там можно тоже использовать различные условия завершения, продолжения и шага итерации цикла. Все эти операторы предназначены для разных целей. Любой цикл, вообще говоря, состоих из трех частей: инициализация, тело цикла и оператор, переводящий цикл в следующую итерацию. Если по какой-то причине инициализация уже проведена, то можно использовать while. В некоторых случаях требуется, чтобы тело цикла было выполнено хотя бы один раз. В этом случае требуется do. Таким образом, for является наиболее универсальным и общим оператором. Но именно в нем введены эти идиотские ограничения. Такие фразы наводят на мысль, что вы и Це толком не знаете. Студент ? Или школьник ? Я берусь утверждать, что знаю Си в совершенстве. А каков был ваш ход мыслей, приведший к такому выводу? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 14 ноября, 2008 Опубликовано 14 ноября, 2008 · Жалоба Пожалуй да. Потому что цикл do используется только когда он должен выполниться хотя бы один раз. Как вам удается его применять везде - для меня загадка. Конечно загадка. Где Вы увидели в моем сообщении про применение везде. Было только вот я принципиально стараюсь писать циклы а до применять везде дистанция огромного размера. Объясню подробнее. Практически, цикл do{}while(--var) будет оптимален на всех процах. Даже компилятор почти не сумеет это дело попортить. Если возможно нулевое количество итераций, частенько наиболее оптимальный вариант - if (var) do{}while(--var); Что же касается постоянного использования goto - то будь я на месте вашего работодателя, я вас немедленно бы уволил. Потому что от программы недостаточно чтобы она работала, нужно чтобы ее мог легко понять другой программист. Я же давал ссылку, там прямо написано: - настоящие программисты не боятся использовать GOTO; Посмотрите на исходник библиотечной функции printf (точнее, formatted_write). Будете удивлены. Ну и если смотреть глобально - я уже почти не наемный работник. Вот осталось до нового года дотянуть и нафиг, увольняюсь. Я теперь сам работодатель и не принимаю на работу тех, кто боится применять goto :-P Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться