LINUX.ORG.RU

Страуструп о будущем семантических средств разработки с комментариями

 ,


2

0

У Страуструпа имеется книжка о развитии и о будущем средств разработки для языка C++, "Дизайн и эволюция языка C++", в частности о поддержке семантического программирования. Интерес представляют комментарии к книге данные Евгением Зуевым, одним из известных советских программистов и разработчика компилятора C++.

Отредактировано anonymous_incognito

>>> Подробности

anonymous

Проверено: anonymous_incognito ()

Ответ на: комментарий от Sidrian

да сделай элементарный двойной-тройной вложенный цикл с вызовом методов классов и работой с многомерным массивом/строками или возьми тот же алгоритм вычисления PI - и твои пионерские поделки можно будет сразу выкинуть

frame ★★★
()
Ответ на: комментарий от frame

>>Неужто невозможно было и HalfLife написать на C?

>Где это утверждалось?


Всё ясно, вы сюда пришли с целью тупого троллинга. Сами ничего не утверждаете, чужие мнения оспариваете. Так неинтересно, давайте уже всё-таки вы озвучите собственную позицию, дабы троллинг не был односторонним :)

morbo
()

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

Гавно вкусное потому что его обожают все мухи...

Sidrian
()
Ответ на: комментарий от morbo

>Из википедии: "В современной терминологии Simula 67 можно охарактеризовать как объектное расширение Algol 60."
>То есть расширение, но не язык в целом. Я считаю этот язык языком с абстрактными типами данных, но не ООЯ в полном понимании этих слов.


В вашем понимании, наверное, язык Delphi тоже будет "объектным расширением" языка Pascal. Ж))

iZEN ★★★★★
()
Ответ на: комментарий от frame

>ты мыслишь как студент-филолог, а вот тебе реальность, сынок http://blog.gamedeff.com/?p=64

По плюсам на собеседовании вопросов лучше не задавать. Лучше даже вообще не брать людей которые хотят писать на С++ - это показатель комбинации худших сторон непрактичности (любовь городить сложные иерархии вместо решения задачи) и практичности (трусость, косность).

Absurd ★★★
()
Ответ на: комментарий от anonymous

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

А если еще вспомнить, что java родилась на идеях Н.Вирта, причем убого реализованных...

anonymous
()
Ответ на: комментарий от morbo

>Всё ясно, вы сюда пришли с целью тупого троллинга.

Постойте-постойте. Мне С++ нравится, а действительно ТУПОЙ троллинг - это выражение здесь вашего недовольства, т.к. от этого ровным счетом ничего не изменится.

frame ★★★
()
Ответ на: комментарий от Absurd

Нет, что ты. Это ведь признак мужества. Круче только ассемблерщеки и машкодовцы. То вообще боги...

Sidrian
()
Ответ на: комментарий от Sidrian

Найти в инете исходники вычисления pi не судьба? Значит останется ваш окамл говном безапелляционно =)

frame ★★★
()
Ответ на: комментарий от Absurd

>По плюсам на собеседовании вопросов лучше не задавать. Лучше даже вообще не брать людей которые хотят писать на С++ - это показатель комбинации худших сторон непрактичности (любовь городить сложные иерархии вместо решения задачи) и практичности (трусость, косность).

Это просто эталон тупейшего троллинга. КГ/АМ, короче.

frame ★★★
()
Ответ на: комментарий от iZEN

>В вашем понимании, наверное, язык Delphi тоже будет "объектным расширением" языка Pascal. Ж))

Да, он и есть Object Pascal. Советую всё-таки заиметь хотя-бы поверхностное представление о SmallTalk. Это не очередной язык с объектами, это действительно объектно-ориентированный язык.

morbo
()
Ответ на: комментарий от anonymous

>А если еще вспомнить, что java родилась на идеях Н.Вирта, причем убого реализованных...

Java родилась под влиянием идей не Вирта, а его оппонента — Бертрана Мейера, разработчика ЯП Eiffel. ;)

iZEN ★★★★★
()
Ответ на: комментарий от frame

>Постойте-постойте. Мне С++ нравится, а действительно ТУПОЙ троллинг - это выражение здесь вашего недовольства,

Допустим я действительно пришёл выразить своё Фе C++. В таком случае чем вы отличаетесь от меня? Только лишь тем, что пришли выразить своё восхищение этим языком?

> т.к. от этого ровным счетом ничего не изменится.


Ни в моих ни в ваших силах что-то изменить в сколь-нибудь глобальных масштабах.

Я лишь пришёл сюда:
1. поинтересоваться зачем нужно программисту видеть семантическое дерево компилятора? Не говорит ли это желание о том, что язык имеет какие-то недостатки. Если программисту приходится свою семантику сверять с тем, как её понял компилятор, то скорее всего дело в том, что язык труден для понимания, имеет какие-то неоднозначности, вольности?
2. возразить фанатичным любителям C++, страдающим от чувства собственного величия, что C++ подходит всё-таки не везде.

morbo
()
Ответ на: комментарий от morbo

>>В вашем понимании, наверное, язык Delphi тоже будет "объектным расширением" языка Pascal. Ж))
>Да, он и есть Object Pascal.

Во времена Дейкстры (один из соавторов Algol 60) и позднее, вроде бы, разделяли императивные языки на алголоподобные и не-алголоподобные.
Например, ADA в числе алголоподобных языков, но назвать Аду расширением Algol 60 как-то язык не поворачиватеся.


Код на Algol 60:
procedure Absmax(a) Size:(n, m) Result:(y) Subscripts:(i, k);
    value n, m; array a; integer n, m, i, k; real y;
comment Максимальный элемент матрицы a, размера n на m 
 передаётся в виде результата в y, а его индексы — в параметры i и k;
begin integer p, q;
    y := 0; i := k := 1;
    for p:=1 step 1 until n do
    for q:=1 step 1 until m do
        if abs(a[p, q]) > y then
            begin y := abs(a[p, q]);
            i := p; k := q
            end
end Absmax



Код на Simula-67:
Class Rectangle (Width, Height); Real Width, Height;
                           ! Class with two parameters;
 Begin
    Real Area, Perimeter;  ! Attributes;

    Procedure Update;      ! Methods (Can be Virtual);
    Begin
      Area := Width * Height;
      Perimeter := 2*(Width + Height)
    End of Update;

    Boolean Procedure IsSquare;
      IsSquare := Width=Height;

    Update;                ! Life of rectangle started at creation;
    OutText("Rectangle created: "); OutFix(Width,2,6);
    OutFix(Height,2,6); OutImage
 End of Rectangle;

Rectangle Class LocRectangle (X, Y); Integer X, Y;
Begin                                        ! More parameters;
   Boolean Tall;                             ! More attributes;

   Procedure Move (Dx, Dy); Integer Dx, Dy;  ! More methods;
   Begin
      X := X + Dx; Y := Y + Dy
   End of Move;
                                             ! Additional life rules;
   Tall := Height > Width;
   OutText("Located at: "); OutFix(X,2,6); OutFix(Y,2,6); OutImage
End of LocRectangle;

Ref(Rectangle) R;
Ref(LocRectangle) LR;
...
R :- New Rectangle(50, 40);
LR :- New LocRectangle(20, 30, 100, 200);

Simula I = Process oriented discrete simulation language based on Algol 60. (1964 - 1965) Simulation language.
Simula 67 = General object oriented language with system classes supporting linked lists (the system class Simset) and discrete process oriented simulation (the system class Simulation). (1967 - 1971) Simple universal language.
http://staff.um.edu.mt/jskl1/talk.html

>Советую всё-таки заиметь хотя-бы поверхностное представление о SmallTalk. Это не очередной язык с объектами, это действительно объектно-ориентированный язык.

Да верю я, верю. Синтаксис мне его в своё время не понравился, а так сама идея языка красивая.

iZEN ★★★★★
()
Ответ на: комментарий от Valeriy_Onuchin

>вроде как, уже лет ~20 живем в "не советской" стране Valeriy_Onuchin * (*) (09.09.2008 14:07:36)

Не знаю в какой стране Ты живешь, а я живу в Украине и она "не советская" не более 17 лет, а если учесть все "совковые" залипухи, то "совок" у нас до сих пор, тока перекрашенный, а "оранжевая гъэволюция" все больше и больше смахивает на "великую, октябрьскую ..." переворот.

anonymous
()
Ответ на: комментарий от fpga

>Вот что на форте сидят это я вообще впервые слышу! ...

"Есть на свете вещи, о которых мы не знаем, мой друк, Горацио!"

Учите матчасть, кароче!

anonymous
()
Ответ на: комментарий от Absurd

>При этом он настолько сложен что по хорошему коду на С++ можно как по отпечаткам пальцев однозначно определить программиста

Мда:)

anonymous
()
Ответ на: комментарий от Sidrian

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

> Тоесть язык программирования нужен что-бы с ним бороться, а не решать с помощью него поставленые задачи?

Sidrian (*) (09.09.2008 0:52:08)

Аналог указателя для автоматического контроля памяти в с++ делается в виде шаблона класса, никаких особых проблем. Тот, кто знает c++, проблем не испытывает.

anonymous
()
Ответ на: комментарий от fpga

>Си это уже туда куда Си++ реально не поместится, такие контроллеры есть, однако они немногочисленны и уходят с рынка...

По-моему ерунду пишете. Скорее всего такого не может быть. Не используй на плюсах ооп -- код будет того же размера как и на с. В gcc один и тот же линкер используется.

anonymous
()
Ответ на: комментарий от anonymous

>Страцс даже msdn не читал... Так что он не авторитет. anonymous (*) (09.09.2008 20:07:51)

Ржунемогу:)

anonymous
()
Ответ на: комментарий от iZEN

>В вашем понимании, наверное, язык Delphi тоже будет "объектным расширением" языка Pascal. Ж))

>iZEN ** (*) (09.09.2008 19:38:35)

В Delphi используется диалект Object Pascal.

Учите все матчасть, короче.

anonymous
()
Ответ на: комментарий от frame

>Проще сделать лоботомию, т.к. результат воздействия на мозг один и тот же frame ** (*) (09.09.2008 19:14:10)

ну и скока фрез сломал хирург, пока делал тебе "проще"

anonymous
()
Ответ на: комментарий от morbo

>Допустим я действительно пришёл выразить своё Фе C++. В таком случае чем вы отличаетесь от меня? Только лишь тем, что пришли выразить своё восхищение этим языком?

Троллизм в моем понимании - это когда в топике про [SubjA] говорить, что "оно сасьод, а рулитЪ [SubjB]", а я сейчас на стороне обиженных, убиваю свое время =)

>поинтересоваться зачем нужно программисту видеть семантическое дерево компилятора?

я наверное без поиска и не скажу, что это такое ))) что-то вроде про неоднозначность: все на совести программистов, т.к. и на "простом Си" можно так написать код, что плюсовые неоднозначности по сравнению будут детским садом

>возразить фанатичным любителям [whatever]

это же ТУПО!!! или вы несогласны? )))

frame ★★★
()
Ответ на: комментарий от frame

>Найти в инете исходники вычисления pi не судьба? Значит останется ваш окамл говном безапелляционно =)

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

Sidrian
()
Ответ на: комментарий от anonymous

>Аналог указателя для автоматического контроля памяти в с++ делается в виде шаблона класса, никаких особых проблем. Тот, кто знает c++, проблем не испытывает.

А почему такая нужная фича до сих пор не является частью языка?

Sidrian
()
Ответ на: комментарий от black7

>или там БЗ-34/МК-52(61)

О, это Вещь! В школе программировал на МК-56. После него паскаль на первом курсе универа был что семечки :) У меня до сих пор сохранился МК-61, люблю иногда юность вспомнить :)

alex-w ★★★★★
()
Ответ на: комментарий от iZEN

>В вашем понимании, наверное, язык Delphi тоже будет "объектным расширением" языка Pascal. Ж)) iZEN ** (*) (09.09.2008 19:38:35)

ГЫ! А что, нет? "Delphi" - новоназ, первоначально - "Object pascal", который пересекался по названию с паделием от Apple c еще более убогим синтаксисом в плане ООП.

А Цэ++ был, первоначально, Це с классами - С-труп его поначалу только так и называл, а компиллер с Це++ был прекомпилятором с ++ в Це, как щаз MOC -прекомпиллер с КюТэ в Це++, советую познакомиться с "кодом", который он генерит - "Кошмар на Улице Вязов" нервно курит в сторонке.

anonymous
()
Ответ на: комментарий от fpga

>У меня провокационный вопрос (но это я не специально, мне просто любопытно): что же не так с C++? Почему это он должен умереть, устарел и так далее? Желательно со ссылками на литературу где дается сравнение C++ с более новыми языками...

Большая часть говорящих такое здесь не смогут дать внятного ответа на эти вопросы ;)

alex-w ★★★★★
()
Ответ на: комментарий от Sidrian

Вы отказались от апелляции, поэтому обвинение признает окамл и ди говном, посмертно. Ваши последние слова?

frame ★★★
()
Ответ на: комментарий от morbo

>почему же пользователи предпочитают приложения на с++ и так неохотно не пополняют ряды жаба-пользователей

>Заметьте - пользователи предпочитают, а не программисты.Предпочитают по простой причины - много памяти кушает. Кушает из за большого количества библиотек, уровней абстракции, монстроизации интерфейсов современных программ, за счёт толстой виртуальной машины и т.п. Не совсем. Из-за того что Сан за много лет не осилили или не захотели грамотно оптимизировать выполнение программы, чтобы хотя бы приблизить по производитеьности к c++ Поэтому джава так и не перешла границу узкого сектора программ для мобильных устройств и приличный софт для настольных компьютеров на ней никогда не писали

А преимущества от управляемости кода весьма сомнительны (и это показал тот факт что джава существует с 93(!) года), многие вещи, даже контроль утечек памяти, контроль границ массивов удалось реализовать на c++. Кстати в c++ можно пользоваться обычными указателями, а для контроля утечек использовать специальные анализаторы кода.

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

anonymous
()
Ответ на: комментарий от frame

>Нет. Таких языков (кроме С) в широком диапазоне применимости сейчас просто нет.

FORTRAN, Common Lisp рано со счетов списывать ;-)

Metallic
()
Ответ на: комментарий от alex-w

>>У меня провокационный вопрос (но это я не специально, мне просто любопытно): что же не так с C++? Почему это он должен умереть, устарел и так далее? Желательно со ссылками на литературу где дается сравнение C++ с более новыми языками...

>Большая часть говорящих такое здесь не смогут дать внятного ответа на эти вопросы ;) alex-w * (*) (09.09.2008 21:38:56)

Отвечу достойно, как Геббельс.

Проклятые капиталисты не дают хода таким сравнениям и исследованиям. [точка]

anonymous
()
Ответ на: комментарий от Absurd

> По плюсам на собеседовании вопросов лучше не задавать. Лучше даже вообще не брать людей которые хотят писать на С++ - это показатель комбинации худших сторон непрактичности (любовь городить сложные иерархии вместо решения задачи)

Я пишу на Си++, но избегаю излишних иерархических конструкций, ибо непрактично... Однако полное отсутствие поддержки объектов в таком языке как Си иногда приводит к некоторым неудобствам...

fpga
()
Ответ на: комментарий от anonymous

> как щаз MOC -прекомпиллер с КюТэ в Це++, советую познакомиться с "кодом", который он генерит - "Кошмар на Улице Вязов" нервно курит в сторонке.

Картина маслом: Фредди Крюгер пугает анонимуса QMetaObject'ом... :)

e_val ★★★
()
Ответ на: комментарий от frame

>Вы отказались от апелляции, поэтому обвинение признает окамл и ди говном, посмертно. Ваши последние слова? frame ** (*) (09.09.2008 21:48:01)

НЭ ТАРА ПИСЬКА!

anonymous
()
Ответ на: комментарий от fpga

> Однако полное отсутствие поддержки объектов в таком языке как Си иногда приводит к некоторым неудобствам... fpga (*) (09.09.2008 21:53:41)

Када йа ваяю монстра "многохуий казанова"

anonymous
()
Ответ на: комментарий от anonymous

90% экслплуатируемых в USA программ написано на Коболе и Фортране, когда твой папа твою маму еще не знал...

anonymous
()
Ответ на: комментарий от e_val

>Картина маслом: Фредди Крюгер пугает анонимуса QMetaObject'ом... :) e_val ** (*) (09.09.2008 21:55:46)

Не, заматывает анонимуса (мене, что-ли?) в распечатку КДЕ после МОКа, предварительно вырубив всю сибирскую тайгу на бумагу для нее своими пальтсами :)

anonymous
()
Ответ на: комментарий от Sidrian

>А почему такая нужная фича до сих пор не является частью языка?

Sidrian (*) (09.09.2008 21:33:37)

А какой смысл? Язык настолько элегантен, что позвояет не засорять семантику побочными вещами. Так же как операции ввода-вывода реализуются через шаблоны и производные от них классы, а не тупо как в бейсике встроенными операторами языка.

anonymous
()
Ответ на: комментарий от anonymous

> 90% экслплуатируемых в USA программ написано на Коболе и Фортране, когда твой папа твою маму еще не знал...

Билл Гейтс, перелогиньтесь!

e_val ★★★
()
Ответ на: комментарий от anonymous

> Не, заматывает анонимуса (мене, что-ли?) в распечатку КДЕ после МОКа, предварительно вырубив всю сибирскую тайгу на бумагу для нее своими пальтсами :)

Не, таким только детсадовцев пугать. Красноглазый Крюгер, выстукивающий своими длинными когтями ее аналог на pure-C - вот это по-взрослому :)

e_val ★★★
()
Ответ на: комментарий от anonymous

>90% экслплуатируемых в USA программ написано на Коболе и Фортране, когда твой папа твою маму еще не знал... anonymous (*) (09.09.2008 22:02:52)

Када мой папа знал твою маму им это было не интересно.

anonymous
()
Ответ на: комментарий от Absurd

>каждый предпочитает пасти свои велосипеды.

+много

mint
()
Ответ на: комментарий от e_val

И вообще, кто moc'а боится - тот просто исходников Mono/mcs не читал. :)

e_val ★★★
()
Ответ на: комментарий от e_val

>Не, таким только детсадовцев пугать. Красноглазый Крюгер, выстукивающий своими длинными когтями ее аналог на pure-C - вот это по-взрослому :) e_val ** (*) (09.09.2008 22:11:48)

Во-во. Отвечу по-ЛОРовски "Фредди Крюгера в студию, а иначе - слив заshitан"

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.