RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Ответить на сообщение
Имя:
e-mail:
FIDO:
Home page:
сохранить данные о вас
Тема:
> >> Да, конечно, с языком как с абстракцией это никак не связано. Просто реализовать возможности объектно-ориентированного подхода по-другому невозможно. > > > > Неправда ваша ;) > > Может быть. Но когда я разбирался с той программой, я понял (во всяком случае, решил, что понял), почему компилятор делал именно так, а не иначе. Времени с тех пор прошло много, поэтому сразу вспомнить, что именно я тогда понял, не могу, а напрягаться вспоминать - не хочется. > > >>>> Я лично к фортану равнодушен, но знавал людей, писавших на нём компиляторы и не видевших в этом ничего особенного. > > > > Я вот как-то не уверен, что они писали компайлеры на Фортран IV. > > Я с ними работал в конце 80-х годов, а компиляторы они писали ещё до того, как я туда пришёл. Какой это мог быть фортран? > > >> Слишком уж легко сделать ошибку и употребить где-то в выражении адрес переменной вместо её значения (или наоборот). А компилятор (в силу особенностей языка) пережуёт это в код и ни слова поперёк не скажет. > > > > Брр. Это как? Любой компилятор выругается на несоответствие типов. > > В языке, в котором отсутствует строгая типизация (а С ведь такой, не так ли?) полно ситуаций, когда выполняется автоматическое преобразование типов, поэтому компилятору в них ругаться просто не на что. > Не будучи специалистом по написанию программ на С, пример привести не могу, но мои знакомые об указанную выше ситуацию обжигались неоднократно - прямо у меня на глазах (потому я о ней и знаю). > > >> Или вот работа с библиотеками (особенно чужими) - это же просто кошмар какой-то. Строго говоря, библиотек и нет вовсе - компилятор после препроцессора имеет дело просто с монолитным потоком текста. В результате то, что в одном файле (подключённом через include) было определено с помощью define, может быть запросто угроблено в каком-то из последующих файлов - и программист об этом подозревать не будет. > > > > Компилятор скажет, что у тебя имеет место Macro redefinition и укажет в каком файле и месте. > > По поводу undef Славик уже сказал (я, кстати, именно об этом и думал, когда писал). Но вот сейчас передо мной лежит учебник по С, и в нём такой пример напечатан: > --------- > #define HUGE 5 > [...] > #define HUGE 10 /* HUGE переопределён как 10 */ > --------- > и никаких #undef между ними... > Должен ли я не верить учебнику? > > >> Или случай, когда в двух используемых библиотеках имеются одноимённые функции - тоже кровь попортить может. > > > > Линкер тебе сообщит, что имеются одноименные функции (укажет имена) в двух либах (укажет либы) и чего-то некругло. > > Во-первых, линкер - не компилятор. Во-вторых, что с того, что он скажет? Мне же программу сделать нужно. А как, если мне для этого нужны обе библиотеки? Ведь язык не даёт мне возможности явно указать, из какой именно библиотеки я хочу функцию использовать. > > >> В общем, заниматься написанием надёжных программ на подобном языке я бы не стал - здоровье дороже. > > > > Поскольку все приведенные аргументы ложны, то истинность суждения под вопросом ;) > > У меня в университетет был такой предмет - "Логика". Так там наc учили, что из ложных утверждений вполне может следовать истинный вывод :-)
_, _, _, _, _ _, _,_
(_ | / \ |\ | / \ |_/
, ) | , \ / | \| \ / | \
~ ~~~ ~ ~ ~ ~ ~ ~
Programmed by
Dmitri Maximovich
,
Dmitry I. Platonoff
,
Eugen Kuleshov
.
25.09.99 (c) 1999,
RU/2
. All rights reserved.
Rewritten by
Dmitry Ban
. All rights ignored.