Здравствуйте, Gollum, Вы писали:
G>Здравствуйте, DJ KARIES, Вы писали:
DK>>Гага. А на седьмом вкуривают, что Форт переруливает все эти паскали/си/асмы
G>А на последнем они лежат на собственном пляже возле моря, рядом виднеется вилла с вертолетной площадкой. В море белеет яхта. Из языков программирования вспоминаются только названия и то — с трудом.
Програмерская Валгалла. А на могилке программера чветут васильки.
Здравствуйте, Трурль, Вы писали:
Т>Здравствуйте, Stoune, Вы писали:
S>> Си по прежнему широко используестся в системном програмировании(драйвера, ядро ОС) и в встроенных системах(контролеры, DSP, SoC) ни там, ни там Паскалю ничего не светит.
Т>Вот это можно считать использованием Паскаля встроенных системах?
Какая серия этого творения, я так понял дальше инженерного образца дело не пошло. Тзвините но на одну такую поделку иначе я не скажу, потому что человек потратил кучу ненужных усилий на то чтобы "притянуть" Паскаль к железу. Отношение к програмисту как к чистому кодэру тоже не вдохновляет, хотя зная какие сейчас там платят зарплаты действительно он только кодэров нанять и сможет. Апаратная платформа абсолютно неизвесна так что даже как пример не катит. Ну и на одну такую поделку, которую кстати оплачивают из вашего кармана приходятся десятки тысяч С-систем. Например недавний пример, прошивка USB-мыши для достаточно извесной фирмы на С + асм и мне даже в страшном сне не приснилось бы терять время чтоб писать для этой платформы Паскаль компилятор.
Здравствуйте, Nikola-2, Вы писали:
N2>Как может быть хорошим язык, в котором переменные обьявляются в любом месте?
Ну переменные вобщето объявляются не в любом месте. Но и паскалевсого маразма с блоком var нет. N2>Язык должен быть по возможнеости строгим.
Одно другому не мешает.
А если уметь использовать RAII то паскаль выглядит как каменный топор.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Идея правильная — каждый язык создается для своих нужд. НО программист — это чесовек пишущий программы => все языки созданы для программистов.
А Си это язык для написания системных программ.
Здравствуйте, Cyberax, Вы писали:
C>Сергей Губанов пишет:
>> C>Да???? Это С++ с его механизмом раздельной компиляции — не модульный >> C>язык???? >> Да, именно так.
Вообще то С++ мультипарадигменный язык.
C>Кстати, в стандарте С++ есть такая фича: export templates. То есть C>экспортированные в БИНАРНОМ виде шаблоны. Ее, правда, поддерживает всего C>пара компиляторов (просто оказалось, что такая фича не особо и нужна).
Такой компилятор EDG, и фича эта не для экспорта бинарных шаблонов, так как неинстанциированный шаблон експортировать нет возможности, export не выполнил возлагавшихся на него надежд и рано или позно его или удалят или переопределят смысл, так как толку от него сейча 0.
P.S. Я не оберонщик и судя по всему никогда им не стану, у меня другая религия Python
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Здравствуйте, tarkil, Вы писали:
СГ>templates — грубо говоря подстановка на уровне исходного текста (в runtime никаких templates нету)
Грубо говоря ядерная боеголовка єто модернизированая дубина, а Оберон грубо говоря это Паскаль следуя вашей логике. Подстановка исходного текста это Макросы препроцесора, а templates, это мощный апарат вывода типов, частичной параметризации и много чего другого, по сути их мощь смогли оценить наверное после Александрэску только в 2000-м, templates в С++ это ещё один язык внутри языка.
S>Очень простой пример ++i, в большинстве своём переведётся в inc i, в случае с Паскалем нужен ещё оптимизатор,
Нет, в случае с Паскалем нужно Inc(i); писать
S> Но людям которые для железа ничего не писали это сложно понять,
О! Т.е. C — узкоспециализированный язык для крохотных кристаллов. "машинно-независимый ассемблер". А где и он толстоват — етсь C--. Ну и нехай, там можно
S> а класический Паскаль умер и притом давно.
Да он и не жил никогда, ибо не должен был.
Это да! Компилируем программу — перезагрузка. Ещё раз — ещё перезагрузка, контрольная. Ставим точки с запятой между функциями — компилируется.
Ох, классика-копейка!
AJD>>AFAIK в то время у сишных компилеров тоже не было оптимизаторов. А компилер очень быстрый
А опимизирующий линкер, выкидывающий из библиотек (не исходников, а скажем так .LIB+OBJ) весь неиспользуемый код — когда в C++ появился ?
AJD>> А куда она делась? A>А ты хочешь сказать, что в Паскале можно свободно писать A := B + 2, где A и B — указатели?
А зачем? динамические массивы ?
A>А если ты имеешь в виду Inc(Longint(A)), то это никакая не арифметика указателей, а один из возможных выходов из ситуации.
Это не выход. Исключая случай, что A — однобайтовый.
Выход скорее — Pred & Succ.
AJD>>Не дает отстрелить ногу по самую шею. Но в принципе все те же возможности что и в си
A>Да? Чтобы объявить указатель на указатель, сколько кода написать нужно?
Кода ?
var pp: ^Pointer;
Сколько тут кода ?
A> А как тебе работа с A>динамическим массивом?
В чистом виде, с SetLength(), Length() и т.д. не было до довольно поздних Delphi.
Через type dynarr=array[0..0] of xxx, а потом класть это на heap — по крайней мере в TP5.5
A>Но при работе с символами и их кодами, например, постоянные Ord, Chr и т.д. меня раздражают.
Обойти можно. Вот обойти чрезмерное приведение в компиляторе C — труднее
type str = array [0..100] of char; data: array [0..100] of byte;
var x: str; y: data absolute x; // На ДВК/УКНЦ/БК даже красивее - var y origin x: data;
AJD>>есть и обьединения и перечисления и даже множества A>Открой глаза незнающему, пожалуйста. Как в паскале объявить объединение?
type union = record Name: string(* и ещё что-нибудь *)case byte of 0: (asInt: integer); 1: (asPtr: pointer); end;
Хммм, а о каком памкале речь-то идет, что в нем этого не было?
A> Перечисление?
Как раз оно-то вроде в C из Паскаля перешло.
Правда, с улучшениями, можно было написать {value0,value1,value2,value10=10,value11}
В паскале только подряд, 0,1,2,3.....
A>Постоянно нужно лезть к двоеточию... Это СУГУБО СУБЪЕКТИВНАЯ мысль. Кому-то == не нравится в сравнении...
+1
Cпасите меня от сливающегося на старых плохих мониторах ==, а с := я и сам разберусь
Вот += иногда не хватало, в отсутсвие оптимизации.