Перейти к содержанию
    

Господа пасквилянты, чем в попу тарахтеть, какой прекрасный ваш паскаль, лучше приведите пример рабочего кода, хоть бы под тот же АВР, а потом и сравним его с сишным. И скомпиленную прошивку тоже сравнить неплохо было-бы.

 

А то просто флуд и балабольство получается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

А как с этим в системе образования Latvia

 

P.S. Не поймите превратно.

Образование, бывает, формируется в привязке к технологиям крупных продавцов рынка:)

с С, С++, Pascal - это всё продаваемые системы программирования MS, Borland и др.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С, С++, Pascal - это всё продаваемые системы программирования MS, Borland и др.

Таак. Пора звать R.Stallman&Co. Пусть юноше набьют. :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Господа пасквилянты, чем в попу тарахтеть, какой прекрасный ваш паскаль,

 

Эка Вас как перекосило:).

 

P.S. Что Pascal, что С - для меня они из одной обоймы.

А профессионально можно использовать хоть тот, хоть другой :beer:

А эволюцию выигрывают Java, C#, + скриптовые языки и специализированные языки.

 

 

Таак. Пора звать R.Stallman&Co. Пусть юноше набьют. :biggrin:

 

Ага, при том, что мне "священные войны" Pascal vs C нетрогают.

У меня есть своя любимая песочница Forth.

GCC почти не использую.

 

P.S. Хотите высказаться по существу?

Странно что еще не вспомнили Виртовсую Мodula и европейские традиции в программировании.

Изменено пользователем Kopa

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне так удобнее, т.к. я знаю Паскаль лучше, чем 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 // <-- легальная конструкция
        ...

 

 

здесь должны рассматриваться вопросы Си и Паскаля применительно к МК.

Применительно к МК я свою точку зрения уже высказал, в общем-то она совпадает с вашей.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Возможно, кому то, сылка пригодится:)

Это точно, что :) :)

Там, похоже, все на нулевом цикле осталось.

Усадку фундаменту дают, понимаш. :biggrin:

 

 

P.S. Хотите высказаться по существу?

Если это - мне, то я просто типошучу. А так, меня тоже Паскаль vs C не трогают.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Извините за оффтоп, не удержался, в тему холливара Pascal vs C/C++:

Из доклада "Система образования как фактор национального суверенитета в сфере информационных технологий" (стр 12)

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

 

Я вижу здесь три грубейшие ошибки. Все остальное -- производное от них. Поэтому комментировать тут нечего. Ошибки:

1. Данный документ родили товарищи-адепты Паскаля, а не адепты Си/Си++.

2. В качестве консультанта был приглашен Н.Вирт, а не Ритчи или Страуструп.

3. На своем заседании они пили явно не ту водку.

 

Как следствие, докумен получился однобокий и тенденциозный. Очень напоминает истерию Советского Союза на Американские угрозы. Короче -- в жопу этот трактат.

 

ЗЫ, а что, правда было бы прикольно, еслиб Н.Вирт поносил бы свои языки (Паскаль, Модула, Оберон), а ратовал за Си. А вы что хотели услышать от этой братии?

 

 

 

поступаем как Keil решил эту задачу в CA:

 

procedure ramfunc(..);__ram;

begin

end;

накрайняк процедурный тип в паскале есть, выделяем память в RAM - копируем туда код из флеш и выполняем.

 

Нет, нет, Уважаемый! Вы меня непоняли. Я просил реальную конструкцию, а не гипотетическую.

Уточняю -- если Вы привели этот код, то назовите в каком компиляторе какой версии это было написано. Подозреваю, что такого компилятора реально не существует.

Разубедите.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за ссылку. С одной строны, я поржал от души, ...

Ради этого и приводил ссылку, а так же ради того что бы помочь (если надо) осознать, что подобного рода холливары исключительно забано наблюдать со стороны :) Неужели так принципиально кому-то что-то доказать?

Ну а студентам нужно предложить выбор, пусть сами решают на чём писать. (исключительно моё мнение, как человека не связанного с системой образования)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет, нет, Уважаемый! Вы меня непоняли. Я просил реальную конструкцию, а не гипотетическую.

ОК вот не гипотетический код:

 

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) ее бы несомненно реализовали.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

to defunct

 

Код написан качественно, наглядно, понимабельно.

Но ответ не полный. Пожалуйста, назовите компилятор и его версию.

 

Результат в пользу Паскаля пока не засчитывается.

 

Ключевая фраза выделена

[qoute]__ram конструкция ни одним Паскаль-компилятором не поддерживается, но тем не менее если бы была на то необходимость (были бы комиляторы с Паскаля под ARM) ее бы несомненно реализовали.

Значит, такой потребности нет. Была бы необходимость, так и на Фортране были бы введены соответствующие механизмы, которые позволяли бы писать на нет драйверы. Однако ж по какой-то причине их нет. Интересно, что за причина?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

назовите компилятор и его версию.

Приведенный пример скопилировал в Delphi7.

 

Значит, такой потребности нет

Верно - потребности в нем нет, тут я с Вами согласен.

Писать на паскале, басике и т.п. под МК - кощунство.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приведенный пример скопилировал в Delphi7.

Вот то-то и оно, что код будет скомпилирован не для АРМов, как я просил.

Меня не интересует Паскаль для компов. Меня интересует (1)Паскаль для МК и (2) какие ОС были написаны на Паскале.

 

Верно - потребности в нем нет, тут я с Вами согласен.

Писать на паскале, басике и т.п. под МК - кощунство.

Абсолютно согласен!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

От себя могу назвать только одну ОС, которая изначально была написана на Паскале. Это -- всем известная Windows.

Редкостный бред, десятилетиями годами кочующий из одного форума в другой.

В память о неблагополучном прошлом весь мир получил в наследство паскалевские вызовы API Window.

Паскалевские вызовы были введены из-за того, что по этому соглашению легче вызывать callback-функции, которыми изобилует система.

 

 

А язык Си... он вымер, уж простите.

Да уж, смешнее не скажешь. Я долго хохотался.

 

Ооо, скажите, а вот я принципиально стараюсь писать циклы как do{...}while(--var); и постоянно пользую goto. Вы не поскажете, у меня может тоже психические отклонения какие? :)

Пожалуй да. Потому что цикл do используется только когда он должен выполниться хотя бы один раз. Как вам удается его применять везде - для меня загадка. Что же касается постоянного использования goto - то будь я на месте вашего работодателя, я вас немедленно бы уволил. Потому что от программы недостаточно чтобы она работала, нужно чтобы ее мог легко понять другой программист.

 

Извините за оффтоп, не удержался, в тему холливара Pascal vs C/C++:

Из доклада "Система образования как фактор национального суверенитета в сфере информационных технологий" (стр 12)

Теперь понятно почему мы до сих пор в такой жопе... :(

 

2. о цикле for - кто мешает использовать while или until? там можно тоже использовать различные условия завершения, продолжения и шага итерации цикла.

Все эти операторы предназначены для разных целей. Любой цикл, вообще говоря, состоих из трех частей: инициализация, тело цикла и оператор, переводящий цикл в следующую итерацию. Если по какой-то причине инициализация уже проведена, то можно использовать while. В некоторых случаях требуется, чтобы тело цикла было выполнено хотя бы один раз. В этом случае требуется do. Таким образом, for является наиболее универсальным и общим оператором. Но именно в нем введены эти идиотские ограничения.

 

Такие фразы наводят на мысль, что вы и Це толком не знаете. Студент ? Или школьник ?

Я берусь утверждать, что знаю Си в совершенстве. А каков был ваш ход мыслей, приведший к такому выводу?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пожалуй да. Потому что цикл do используется только когда он должен выполниться хотя бы один раз. Как вам удается его применять везде - для меня загадка.

 

Конечно загадка. Где Вы увидели в моем сообщении про применение везде. Было только

вот я принципиально стараюсь писать циклы

а до

применять везде

дистанция огромного размера.

 

Объясню подробнее. Практически, цикл do{}while(--var) будет оптимален на всех процах. Даже компилятор почти не сумеет это дело попортить. Если возможно нулевое количество итераций, частенько наиболее оптимальный вариант - if (var) do{}while(--var);

 

Что же касается постоянного использования goto - то будь я на месте вашего работодателя, я вас немедленно бы уволил. Потому что от программы недостаточно чтобы она работала, нужно чтобы ее мог легко понять другой программист.

 

Я же давал ссылку, там прямо написано:

- настоящие программисты не боятся использовать GOTO;

 

Посмотрите на исходник библиотечной функции printf (точнее, formatted_write). Будете удивлены.

 

Ну и если смотреть глобально - я уже почти не наемный работник. Вот осталось до нового года дотянуть и нафиг, увольняюсь. Я теперь сам работодатель и не принимаю на работу тех, кто боится применять goto :-P

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...