Оберон-технология: особенности и перспективы |
Тематика обсуждения: Оберон-технология. Особенности, перспективы, практическое применение.
Всего в теме 6256 сообщений
Добавить свое сообщение
Отслеживать это обсуждение Обсуждение из раздела Школа ОБЕРОНА
№ 1616 10-01-2007 08:04 | |
Ответ на »сообщение 1613« (RBV)
___________________________
У Страуструпа была возможность сделать нормальный язык покуда им никто не пользовался, но он гонялся за эфимерной "свободой программиста"...
В том то и дело, что C++ использовался сразу, и использовался как замена C. Поэтому совместимость с C была обязательной.
№ 1615 10-01-2007 08:01 | |
Ответ на »сообщение 1613« (RBV)
___________________________
У Страуструпа была возможность сделать нормальный язык покуда им никто не пользовался, но он гонялся за эфимерной "свободой программиста"...
Так он по моему такой и делал. Изначально. Только вот им действительно никто не захотел пользоваться. Нужна была обратная совместимость с С. Тогда пошли реализации "C с классами" с обратной совместимостью и со всеми оттуда вытекающими атавизмами.
С++ не стал бы столь популярным если бы он не был совместим с С. Увы.
№ 1614 10-01-2007 08:00 | |
Ответ на »сообщение 1607« (RBV)
___________________________
Когда я говорю про язык, я подразумеваю только то, что обрабатывается непосредственно компилятором. Шаблоны - часть языка, STL построенный на них - нет, но часть стандарта - да. С таким успехом, вы мне еще и директивы препроцессора частью языка объявите.
Насколько я знаю все несколько сложнее. Стандарт C++ не требует наличие реализации класса std::string в стандартном файле string. Тоже самое касается и остальных классов STL. Т.е., теоретически, встречая #include <string>, компилятор имеет полное право использовать свою собственную реализацию строки (с любыми внеязыковыми оптимизациями), а не компилировать файл string. Другое дело, что я не знаю о существовании таких шибко умных компиляторов в природе.
№ 1613 10-01-2007 07:57 | |
Ответ на »сообщение 1609« (pepper)
___________________________
Ответ на »сообщение 1604« (RBV)
___________________________
И в нем еще больше станет рекомендаций типа "я так никогда не делаю", "так можно, но лучше не надо", "а вот это средство ненадежно"...
Видишь ли, есть такая вещь как обратная совместимость. Вирт может делать со своими языками что угодно, дотачивая их до идеала, все равно ими никто не пользуется. В случае с "реальными" языками такое не проходит. И goto присутсвует в языке C++ не потому, что Страуструп не понимает прописных истин, преподносимых Виртом, а потому что иначе язык C++ ждала бы судьба оберонов.
У Страуструпа была возможность сделать нормальный язык покуда им никто не пользовался, но он гонялся за эфимерной "свободой программиста"...
№ 1612 10-01-2007 07:54 | |
Ответ на »сообщение 1607« (RBV)
___________________________
Когда я говорю про язык, я подразумеваю только то, что обрабатывается непосредственно компилятором. Шаблоны - часть языка, STL построенный на них - нет, но часть стандарта - да. С таким успехом, вы мне еще и директивы препроцессора частью языка объявите.
Стандартом предусмотрено встраивание STL непосредственно в компилятор (например для лучшей оптимизации кода). Более того - если верить Страуструпу, такие компиляторы ЕСТЬ.
Да, кстати, а что есть компилятор? Как например работает gcc: вначале прогоняется препроцессор, затем пускается "компилятор" C++, который на выходе дает простой ТЕКСТ гнутого ассемблера. Затем пускается уже сам ассемблер.
Та же ада - компилируется там аналогично, т.е. на выходе тоже текст. Никаких бинарников.
№ 1611 10-01-2007 07:53 | |
Ответ на »сообщение 1606« (Alexey Veselovsky)
___________________________
Если бы да кабы... Есть (далеко не нулевая) вероятность что все окружение что есть в BB завтра перекочует в новорожденный ANSI (или какой-то другой) стандарт по КП, значит ли это что текущее окружение ВВ уже, прямо сейчас, следует считать стандартом для КП? Т.е. вместе с активными объекстами и всем прочим.
Нет. Так же как и не следует считать boost частью стандартного C++.
№ 1610 10-01-2007 07:53 | |
Да тут тихий ужас :))))))))))))))))
pepper-у - медаль на грудь! :)))
№ 1609 10-01-2007 07:47 | |
Ответ на »сообщение 1604« (RBV)
___________________________
И в нем еще больше станет рекомендаций типа "я так никогда не делаю", "так можно, но лучше не надо", "а вот это средство ненадежно"...
Видишь ли, есть такая вещь как обратная совместимость. Вирт может делать со своими языками что угодно, дотачивая их до идеала, все равно ими никто не пользуется. В случае с "реальными" языками такое не проходит. И goto присутсвует в языке C++ не потому, что Страуструп не понимает прописных истин, преподносимых Виртом, а потому что иначе язык C++ ждала бы судьба оберонов.
№ 1608 10-01-2007 07:46 | |
Ответ на »сообщение 1603« (Alexey Veselovsky)
___________________________
Во-первых EBNF-нотация определяет только синтаксис но не поведение. Все конструкции STL так или иначе вписываются в EBNF описание синтаксиса языка С++.
Вы путаете описание языка и описание соответствие правилам синтаксиса записи предложений на языке.
EBNF-нотация не есть полное описание языка. Она не несет полной информации по языку.
Ну дык EBNF семантику никогда и не описывала...
Да, и еще - когда я говорю Оберон, я подразумеваю именно язык-Оберон. Если я говорю КП, то я подразумеваю именно Компонентный Паскаль. И никак иначе.
А теперь представьте, что говоря Си++ я имею в виду именно Си++, но никак не какой-то там STL... :о)
№ 1607 10-01-2007 07:46 | |
Ответ на »сообщение 1603« (Alexey Veselovsky)
___________________________
Ответ на »сообщение 1599« (RBV)
___________________________
В таком случае укажите мне место в EBNF-нотации, где видно, что это часть языка (У Ахо, Ульмана и др. в книжке по компиляторам есть в конце [по Зуеву, кстати]).
STL это не часть языка, а часть стандартного окружения. Стандартное окружение КП описано как раз в указанном приложении. Более того, т. к. BlackBox является первоисточником КП, его фрэймворк я считаю его стандартной библиотекой.
Во-первых EBNF-нотация определяет только синтаксис но не поведение. Все конструкции STL так или иначе вписываются в EBNF описание синтаксиса языка С++.
EBNF-нотация не есть полное описание языка. Она не несет полной информации по языку.
Да, и еще - когда я говорю Оберон, я подразумеваю именно язык-Оберон. Если я говорю КП, то я подразумеваю именно Компонентный Паскаль. И никак иначе.
Особенности, достоинства и недостатки КП я пока вроде не обсуждал. Да и не собираюсь (пока) обсуждать.
Когда я говорю про язык, я подразумеваю только то, что обрабатывается непосредственно компилятором. Шаблоны - часть языка, STL построенный на них - нет, но часть стандарта - да. С таким успехом, вы мне еще и директивы препроцессора частью языка объявите.
Добавить свое сообщение
Отслеживать это обсуждение
Дополнительная навигация: |
|