avva: (Default)
[personal profile] avva
Проверьте себя: сумеете ли вы правильно ответить, не запуская, что должна напечатать эта программа:

    #include <iostream>
    #include <complex>
    using namespace std;

    class Base {
    public:
        virtual void f( int ) {
            cout << "Base::f(int)" << endl;
        }

        virtual void f( double ) {
            cout << "Base::f(double)" << endl;
        }

        virtual void g( int i = 10 ) {
            cout << i << endl;
        }
    };

    class Derived: public Base {
    public:
        void f( complex<double> ) {
            cout << "Derived::f(complex)" << endl;
        }

        void g( int i = 20 ) {
            cout << "Derived::g() " << i << endl;
        }
    };

    void main() {
        Base    b;
        Derived d;
        Base*   pb = new Derived;

        b.f(1.0);
        d.f(1.0);
        pb->f(1.0);

        b.g();
        d.g();
        pb->g();

        delete pb;
    }



Я вот не смог, ошибся в одном месте. Значит ли это, что я не помню C++? Наверняка. Я много лет не писал на нём (в отличие от C, на котором пишу время от времени). Но знаете что? я пока не соскучился.

Нафиг, нафиг. Java, C#, да что угодно пусть придёт, но от этого плюсплюсного конгломерата сложных и плохо продуманных синтаксических сталагмитов пора избавляться.

Хотите ещё один курьёз? Пожалуйста. Вот такой код:

#include <iostream>
#include <complex>
using namespace std;
                                                                                
int main() {
  int x=1, y=1;
  for( int i = 0; i < 100; ++i ) {
    ++y;
    // What will the next line do? Increment???????????/
    ++x;
  }
  cout << "x=" << x << " y=" << y <<endl;
  return 0;
}

что напечатает?

Думаете, "x=101 y=101"? А вот и нет. Он напечатает "x=1 y=101". Угадайте почему.

Когда кто-то писал комментарий, в конце строки вопросительных знаков случайно отпустил shift, и получил слэш. А ??/ — это триграф, обозначающий бэкслэш, т.е. \, и этот \ съедает следующий за ним \n, и делает строку ++x; частью комментария.

Про триграфы можно прочитать здесь. Там же про диграфы есть. Вы знаете, что в C++ можно использовать "and" и "or" вместо && и ||? Я не знал.


Да, кстати, правильные ответы и объяснения по поводу первого куска кода есть здесь. Там же есть ещё много сложных вопросов и мини-статей по синтаксису и возможностям C++.

Date: 2004-03-15 12:25 pm (UTC)
From: [identity profile] cema.livejournal.com
Да вообще-то. Да.

Date: 2004-03-15 12:46 pm (UTC)
From: [identity profile] anton.livejournal.com
Нафиг, нафиг. Java, C#, да что угодно пусть придёт, но от этого плюсплюсного конгломерата сложных и плохо продуманных синтаксических сталагмитов пора избавляться.

В C# и Java, не думая, тоже можно много чего наворотить.
А ничего подобного тому, что сейчас можно делать на C++ вообще, не говоря уж об элегантности нового кода и производительности, сделать на них просто нельзя.

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

Date: 2004-03-15 12:48 pm (UTC)
From: [identity profile] anton.livejournal.com
Ваша ссылка на gotw напомнила мне вашу же недавнюю запись про ссылку на Гугл :)

Date: 2004-03-15 01:08 pm (UTC)
From: [identity profile] trurle.livejournal.com
О, да, продуманность C++ есть совершенно неоспоримый факт. Особенно multiple inheritance, по сравнению с которой предложенная головоломка просто ничего.
И шаблоны - это именно то что доктор прописал. Попробуйте на досуге отладить чужой код, написанный с интенсивным применением шаблонов. Будет Вам просветление, в самом лучшем виде.
Маму родную не узнаете.

(no subject)

From: [identity profile] anton.livejournal.com - Date: 2004-03-15 01:21 pm (UTC) - Expand

(no subject)

From: [identity profile] trurle.livejournal.com - Date: 2004-03-15 01:27 pm (UTC) - Expand

(no subject)

From: [identity profile] anton.livejournal.com - Date: 2004-03-15 01:37 pm (UTC) - Expand

(no subject)

From: [identity profile] a-konst.livejournal.com - Date: 2004-03-15 02:35 pm (UTC) - Expand

(no subject)

From: [identity profile] anton.livejournal.com - Date: 2004-03-16 01:57 am (UTC) - Expand

(no subject)

From: [identity profile] sobaker.livejournal.com - Date: 2004-03-15 11:24 pm (UTC) - Expand

(no subject)

From: [personal profile] nine_k - Date: 2004-03-16 02:53 am (UTC) - Expand

(no subject)

From: [personal profile] yigal_s - Date: 2004-03-15 01:42 pm (UTC) - Expand

(no subject)

From: [identity profile] ifyr.livejournal.com - Date: 2004-03-15 02:02 pm (UTC) - Expand

yep.

From: [identity profile] arbat.livejournal.com - Date: 2004-03-15 03:19 pm (UTC) - Expand

Опять 25..

From: [identity profile] trurle.livejournal.com - Date: 2004-03-16 01:08 am (UTC) - Expand

Re: Опять 25..

From: [identity profile] ifyr.livejournal.com - Date: 2004-03-16 02:14 am (UTC) - Expand

guns don't shoot people in the foot

From: [identity profile] arbat.livejournal.com - Date: 2004-03-16 03:19 am (UTC) - Expand

Date: 2004-03-15 12:57 pm (UTC)
From: [identity profile] tejblum.livejournal.com
Второй курьёз, кстати, отлично работает и в C.

Date: 2004-03-15 01:04 pm (UTC)
yigal_s: (Default)
From: [personal profile] yigal_s
Я не специалист по столь тонким вопросам, да и на С давно не пишу, но, кажется, в ISO C99 есть ровно такой же набор ди/триграфов, что и в С++.

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

Или, переиначивая вопрос, скажем, почему проблемы, подобные приведенным в первом примере, не возникают в тех же C# или Java?

Date: 2004-03-15 01:19 pm (UTC)
From: [identity profile] oblomov-jerusal.livejournal.com
По-моему, триграфы тянутся в C с каких-то незапамятных времен.

(no subject)

From: [personal profile] yigal_s - Date: 2004-03-15 01:30 pm (UTC) - Expand

(no subject)

From: [personal profile] yigal_s - Date: 2004-03-15 01:32 pm (UTC) - Expand

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2004-03-15 02:09 pm (UTC) - Expand

(no subject)

From: [personal profile] yigal_s - Date: 2004-03-15 02:15 pm (UTC) - Expand

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2004-03-15 02:26 pm (UTC) - Expand

(no subject)

From: [identity profile] a-konst.livejournal.com - Date: 2004-03-15 02:42 pm (UTC) - Expand

Date: 2004-03-15 01:18 pm (UTC)
From: [identity profile] evolver.livejournal.com
Думаете, "x=101 y=101"? А вот и нет. Он напечатает "x=1 y=101". Угадайте почему.

С gcc 2.95.3 фокус не прошел. Сказало "x=101, y=101". В исходнике последовательность пердставлена как "3f 3f 3f 2f 0a 20 20", т.е. вроде бы все с начальным условием задачи совпадает.

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2004-03-15 02:06 pm (UTC) - Expand

Date: 2004-03-15 02:06 pm (UTC)
From: [identity profile] avva.livejournal.com
Скомпилируйте с опцией -trigraphs (в других компиляторах триграфы работают по умолчанию, как стандарт и требует).
Типа g++ -o foobar -trigraphs foobar.cc

(no subject)

From: [identity profile] drw.livejournal.com - Date: 2004-03-15 02:15 pm (UTC) - Expand

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2004-03-15 02:27 pm (UTC) - Expand

Date: 2004-03-15 01:27 pm (UTC)
From: [identity profile] ostap.livejournal.com
Это всё было заложено уже в С. С++ - прямое продолжение сишной идеологии.
Что вообще хорошего можно сказать про язык, в котором обычная переменная по умолчанию передаётся по значению, а массив - по адресы, и более того, где массив вообще, не изъёбываясь специально, нельзя передать по значению, а только по адресу и можно. Прямая дорога к отладочному аду. Мне кажется, одного этого достаточно, чтобы с ним не связываться, если есть хоть малейшая возможность.

Date: 2004-03-15 01:55 pm (UTC)
From: [identity profile] ifyr.livejournal.com
> Что вообще хорошего можно сказать про язык, в котором обычная переменная по умолчанию передаётся по значению, а массив - по адресу

Так массив же -- это просто указатель, так что здесь все логично. Хотите семантику по значению -- std::vector к вашим услугам.

(no subject)

From: [identity profile] ostap.livejournal.com - Date: 2004-03-15 02:55 pm (UTC) - Expand

В таком случае

From: [identity profile] amirul.livejournal.com - Date: 2004-03-16 01:53 am (UTC) - Expand

Re: В таком случае

From: [identity profile] ostap.livejournal.com - Date: 2004-03-16 08:29 am (UTC) - Expand

Re: В таком случае

From: [identity profile] amirul.livejournal.com - Date: 2004-03-16 09:02 am (UTC) - Expand

Re: В таком случае

From: [identity profile] ostap.livejournal.com - Date: 2004-03-16 12:02 pm (UTC) - Expand

(no subject)

From: [identity profile] ifyr.livejournal.com - Date: 2004-03-16 02:31 am (UTC) - Expand

(no subject)

From: [identity profile] ostap.livejournal.com - Date: 2004-03-16 04:20 pm (UTC) - Expand

(no subject)

From: [identity profile] ifyr.livejournal.com - Date: 2004-03-17 02:15 am (UTC) - Expand

(no subject)

From: [identity profile] ostap.livejournal.com - Date: 2004-03-17 04:52 am (UTC) - Expand

Date: 2004-03-15 01:57 pm (UTC)
From: [identity profile] ydolgov.livejournal.com
> Что вообще хорошего можно сказать про язык, в котором обычная
> переменная по умолчанию передаётся по значению, а массив - по адресы

А как ещё это можно сделать, принимая во внимание основную парадигму языка: быть как можно ближе к железяке? Это уж Природа так диктует. Это как и с векторами, меняющими размер: только два таких можно расположить в памяти, не мудрствуя лукаво насчёт её, памяти, управления, а просто расположив их по краям и дав расти друг навстречу друга.

(no subject)

From: [identity profile] ostap.livejournal.com - Date: 2004-03-15 02:48 pm (UTC) - Expand

(no subject)

From: [identity profile] ydolgov.livejournal.com - Date: 2004-03-15 06:37 pm (UTC) - Expand

(no subject)

From: [identity profile] ostap.livejournal.com - Date: 2004-03-15 07:12 pm (UTC) - Expand

(no subject)

From: [identity profile] ostap.livejournal.com - Date: 2004-03-15 02:59 pm (UTC) - Expand

(no subject)

From: [personal profile] nine_k - Date: 2004-03-16 02:46 am (UTC) - Expand

(no subject)

From: [identity profile] onodera.livejournal.com - Date: 2004-03-16 06:00 am (UTC) - Expand

Date: 2004-03-15 01:30 pm (UTC)
From: [identity profile] ydolgov.livejournal.com
По-моему, в мире есть только два языка от Бога: C и Common Lisp (я рассматриваю Scheme как разновидность Lisp). Всё остальное, естественно, от Лукавого.

К слову сказать, для обектно-ориентированного программированя простой C подходит гораздо больше, чем C++.

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

Я не понимаю, почему люди почти всегда игнорируют простое и красивое, а выбирают для пользования всякую дрянь. Ведь это не только в программировании, это, похоже, во всём...

Date: 2004-03-15 01:58 pm (UTC)
From: [identity profile] zigmar.livejournal.com
> для обектно-ориентированного программированя простой C подходит гораздо больше, чем C++
И как на с полиморфизм писать? Запонять в ручную vtables как в GTK? Нет уж, спасибо...

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

(no subject)

From: [identity profile] silpol.livejournal.com - Date: 2004-03-15 02:13 pm (UTC) - Expand

(no subject)

From: [identity profile] zigmar.livejournal.com - Date: 2004-03-15 02:25 pm (UTC) - Expand

(no subject)

From: [identity profile] ydolgov.livejournal.com - Date: 2004-03-15 02:14 pm (UTC) - Expand

(no subject)

From: [identity profile] zigmar.livejournal.com - Date: 2004-03-15 02:31 pm (UTC) - Expand

(no subject)

From: [identity profile] ydolgov.livejournal.com - Date: 2004-03-15 02:50 pm (UTC) - Expand

(no subject)

From: [identity profile] zigmar.livejournal.com - Date: 2004-03-15 03:27 pm (UTC) - Expand

(no subject)

From: [identity profile] ydolgov.livejournal.com - Date: 2004-03-15 03:43 pm (UTC) - Expand

Каждый кулик...

From: [identity profile] amirul.livejournal.com - Date: 2004-03-16 02:02 am (UTC) - Expand

Re: Каждый кулик...

From: [identity profile] ydolgov.livejournal.com - Date: 2004-03-16 10:33 am (UTC) - Expand

(no subject)

From: [identity profile] ydolgov.livejournal.com - Date: 2004-03-15 06:47 pm (UTC) - Expand

(no subject)

From: [identity profile] onodera.livejournal.com - Date: 2004-03-16 06:03 am (UTC) - Expand

(no subject)

From: [identity profile] ydolgov.livejournal.com - Date: 2004-03-15 03:03 pm (UTC) - Expand

Date: 2004-03-15 01:58 pm (UTC)
From: [identity profile] ifyr.livejournal.com
C++ -- язык с четко определенной внутренней логикой, и зная эту логику в подобные ловушки не попадаешь. Да, C# и Java проще, но C++ предоставляет намного больше возможностей, и многие вещи в нем делаются намного проще (libraries aside) учитывая наличие шаблонов и множественного наследования.

Date: 2004-03-15 02:14 pm (UTC)
From: [identity profile] avva.livejournal.com
На деле люди не попадают в ловушки потому, что выбирают для себя какое-то подмножество C++, и по сути дела пишут в нём. Очень редко кто использует весь конгломерат возможностей языка. А в большом проекте это вообще гарантирует фиаско.

Слишком bloated язык получился. Ну уж очень.

(no subject)

From: [identity profile] zigmar.livejournal.com - Date: 2004-03-15 02:39 pm (UTC) - Expand

(no subject)

From: [identity profile] zigmar.livejournal.com - Date: 2004-03-15 02:15 pm (UTC) - Expand

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2004-03-15 02:27 pm (UTC) - Expand

(no subject)

From: [identity profile] trurle.livejournal.com - Date: 2004-03-16 01:03 am (UTC) - Expand

(no subject)

From: [identity profile] anton.livejournal.com - Date: 2004-03-15 02:15 pm (UTC) - Expand

(no subject)

From: [identity profile] ostap.livejournal.com - Date: 2004-03-15 03:04 pm (UTC) - Expand

(no subject)

From: [identity profile] anton.livejournal.com - Date: 2004-03-15 03:23 pm (UTC) - Expand

(no subject)

From: [identity profile] ostap.livejournal.com - Date: 2004-03-15 03:39 pm (UTC) - Expand

(no subject)

From: [identity profile] 109.livejournal.com - Date: 2004-03-15 09:41 pm (UTC) - Expand

(no subject)

From: [identity profile] ostap.livejournal.com - Date: 2004-03-17 10:19 am (UTC) - Expand

(no subject)

From: [identity profile] 109.livejournal.com - Date: 2004-03-17 02:40 pm (UTC) - Expand

(no subject)

From: [identity profile] ostap.livejournal.com - Date: 2004-03-17 05:41 pm (UTC) - Expand

(no subject)

From: [identity profile] 109.livejournal.com - Date: 2004-03-18 06:07 am (UTC) - Expand

(no subject)

From: [identity profile] ostap.livejournal.com - Date: 2004-03-18 06:58 am (UTC) - Expand

(no subject)

From: [identity profile] ostap.livejournal.com - Date: 2004-03-15 03:01 pm (UTC) - Expand

(no subject)

From: [identity profile] arbat.livejournal.com - Date: 2004-03-15 03:22 pm (UTC) - Expand

(no subject)

From: [identity profile] ostap.livejournal.com - Date: 2004-03-15 03:32 pm (UTC) - Expand

(no subject)

From: [identity profile] ifyr.livejournal.com - Date: 2004-03-16 03:07 am (UTC) - Expand

(no subject)

From: [identity profile] ostap.livejournal.com - Date: 2004-03-16 08:35 am (UTC) - Expand

Date: 2004-03-15 02:18 pm (UTC)
From: [identity profile] http://users.livejournal.com/_under_score_/
а ошиблись, наверное, во второй строке.

действительно: то, что компилятор сначала попытается откастить вызов для всех возможных оверлоадов наследника, и лишь потом перейдет к родителю - не самый известный факт. кстати, кто может тыкнуть на соответствующее место в ISO?

Date: 2004-03-15 02:48 pm (UTC)
From: [identity profile] avva.livejournal.com
На самом деле нет: компилятор вообще не будет пытаться переходить к родителю в данном случае, потому что определение f в наследнике скрыло f(double) в родителе. Кажется, это называется hide-by-name semantics. Если бы у complex не было конструктора из double, то компилятор должен был бы ошибку выдать.

Ошибся я в последней строке, т.к. не помнил, что дифолтные значения берутся из базового класса, даже если вызывается виртуальная функция наследника. На самом деле это просто, если подумать немного (ясно же, что это во время компиляции происходит), но я не подумал ;)

(no subject)

From: [identity profile] http://users.livejournal.com/_under_score_/ - Date: 2004-03-15 03:53 pm (UTC) - Expand

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2004-03-15 04:05 pm (UTC) - Expand

(no subject)

From: [identity profile] http://users.livejournal.com/_under_score_/ - Date: 2004-03-15 04:26 pm (UTC) - Expand

Date: 2004-03-15 02:22 pm (UTC)
From: [identity profile] a-konst.livejournal.com
никто еще не похвастался что правильно предсказал вывод первого упражнения :)
значит я похвастаюсь :)

а вот со вторым у меня сперва не вышло -- точнее, напечаталось "101, 101."
и только --ansi смог заставить g++ получить описанный результат.

Date: 2004-03-15 03:37 pm (UTC)
From: (Anonymous)
> ... от этого плюсплюсного конгломерата сложных и плохо
> продуманных синтаксических сталагмитов пора избавляться

Забавно, как даже такие казалось бы нетривиальные люди как avva так банально реагируют на непонимание - "избавляться". Не нравится язык - не используй. Нет, нужно от него "избавляться"!

Date: 2004-03-15 03:41 pm (UTC)
From: [identity profile] ostap.livejournal.com
Not so easy, учитывая, что это самый распространённый из ООП языков. Вот все вроде бы согласны, что пора избавляться от Windows, включая даже американское правительство. А поди ж ты.

(no subject)

From: [identity profile] ydolgov.livejournal.com - Date: 2004-03-15 06:54 pm (UTC) - Expand

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2004-03-15 03:42 pm (UTC) - Expand

(no subject)

From: (Anonymous) - Date: 2004-03-15 03:59 pm (UTC) - Expand

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2004-03-15 04:07 pm (UTC) - Expand

(no subject)

From: (Anonymous) - Date: 2004-03-15 04:13 pm (UTC) - Expand

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2004-03-15 04:16 pm (UTC) - Expand

OT

From: (Anonymous) - Date: 2004-03-15 04:25 pm (UTC) - Expand

(no subject)

From: (Anonymous) - Date: 2004-03-15 07:51 pm (UTC) - Expand

(no subject)

From: [identity profile] 109.livejournal.com - Date: 2004-03-15 09:47 pm (UTC) - Expand

(no subject)

From: [identity profile] squadette.livejournal.com - Date: 2004-03-15 11:17 pm (UTC) - Expand

(no subject)

From: [identity profile] ifyr.livejournal.com - Date: 2004-03-16 02:57 am (UTC) - Expand

(no subject)

From: [identity profile] ydolgov.livejournal.com - Date: 2004-03-15 05:39 pm (UTC) - Expand

(no subject)

From: [identity profile] anton.livejournal.com - Date: 2004-03-15 11:51 pm (UTC) - Expand

Date: 2004-03-15 10:38 pm (UTC)
From: [identity profile] ex-egle611.livejournal.com
А ответы на задачки давать не принято? А то первый пример меня очень интересует, и объяснение.

Date: 2004-03-15 10:43 pm (UTC)
From: [identity profile] avva.livejournal.com
Есть ссылка в самом конце записи (первая ссылка в последнем абзаце) на ответ и объяснение.

(no subject)

From: [identity profile] ex-egle611.livejournal.com - Date: 2004-03-15 11:06 pm (UTC) - Expand

Date: 2004-03-15 11:49 pm (UTC)
From: [identity profile] muchacho.livejournal.com
Во втором примере микрософтовский компилятор даёт предупреждение.

У C++ есть неоспоримое преимущество: с ним не соскучишься.

Даешь голосование!

Date: 2004-03-16 12:37 am (UTC)
From: [identity profile] shtraz.livejournal.com
Авва, Вам надо было просто организовать голосование: кто за, кто против, кто воздержался.

Вчера, как только прочитал эту Вашу запись, я подумал, ну кто я такой, чтобы защищать С++, он и без меня справится. Выгораживать его не хочу. Однако, прочитав тред, свою долю флуда на эту тему непримену добавить:

1. Несмотря на то что C# мне очень по душе, до С++ ему еще надо подрасти: template'ы - грандиозная вещь, одни они чего стоят!
2. Эта уйма возможностей, тонкости, неожиданные аспекты - это-то как раз и обеспечивает его мощь и красоту.

А касательно вопросов: и триграфы/диграфы, и "and/or" введены не просто так, т.е. в тех языках где их нет, либо должно быть что-то другое, эквивалентное, либо не будем сравнивать их с С++.
И три/диграфы, и "and/or/xor/bitand/..." описаны у Срауструпа в 3 издании в приложении В "Технические подробности". Страус у многих программирующих на С++ всегда под рукой.
From: [identity profile] ex-matiouch.livejournal.com
int i = 1;
i += ++i + i++;
cout << i;

— даёт разные результаты в MS C++, g++ и SUN Java. Сиречь, буквально три различных результата.

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2004-03-17 02:15 am (UTC) - Expand

Date: 2004-03-16 03:01 am (UTC)
From: [identity profile] gdy.livejournal.com
Вот ответ Страуструпа на этот ваш пост о слишком низкоуровневом механизме построения абстракций в C++:
http://www.artima.com/intv/elegance2.html

Вы видели D (новейший из языков с таким названием), интересная штука, правда?
http://www.digitalmars.com/d/overview.html

Вот код на С, в некотором смысле аналогичный вашему первому примеру (я, кстати, ответил правильно, ну, ведь, сами подумайте, зачем Derived::g() печает ещё и аргумент ;-)) ):
void terrible( int i )
{
switch( i )
  {
   case 0: do {
   case 1: if( i )
            {
             case 2:;
            }
   }while(i--);
  }
}
По поводу второго примера могу только поинтересоваться, зачем вам понадобились триграфы или почему вы пишете --ansi и не пишете -Wall?

Date: 2004-03-17 02:13 am (UTC)
From: [identity profile] avva.livejournal.com
Спасибо, интересные ссылки. Насчёт триграфов - это не мой пример, это из той же колонки GoTW, из которой первый пример.

Date: 2004-03-16 03:33 am (UTC)
From: [identity profile] iratus.livejournal.com
Да этот спор бесконечен.
Уже сколько копий обломали.

ИМХО

Ассемблеры - Почему собаки лижут себе яйца ? Потому-что могут.... ;-) 99% программистов не может.

С - язык низкого уровня предоставляющий наибольшую гибкость но и требующий максимальной дисцыплины.

С++ - неудачная попытка продвинуть С на уровень обьектно-ориентированного языка

Objective C - удачная попытка продвинуть С на уровень обьектно-ориентированного языка. К сожалению не поддержана Мелкософтом и засим так и не ставшая популярной.
Лучшее доказательство мощи и легкости языка - NextStep и средства разработки для него.

Java/C# - С точки зрения языка - упрощенная версия Objective C. Именно он стал басисом для создания Java. А не С и не С++. Наиболее подходит для решения Хай-Левел задач. Совершенно не подходит для задач низкого уровня. Попытка Sun доказать что это не так посредством написания Java OS окончилась полным провалом


Visual Basic - это конечно не язык программирования пер-се. Но и нос воротить тоже не стоит. Как средство быстро и дешево разрабатывать небольшие программы с ГУИ, он идеален. а потому занимает свою нишу вполне заслуженно


Pascal - реальная жизнь - это не университет.

Ada - слишком тяжел для решения 95% задач. для решения 5% задач - весьма и весьма подходит.

Prolog - Кто-нибудь еще помнит Турбо-Пролог конца 80-х ? где-то на дискетке дома валялся вроде.

Modula-2/3/Oberon - реальная жизнь - это не университет. вторая серия. Хотя потенциал есть, никто почему-то не хочет.

Fortran/Cobol - До сих пор ????????

Forth - RPN anyone ? :)

вопрос - Как назывался язык из школьного учебника по информатике и выч. технике ? Я помнил но забыл.



Date: 2004-03-16 07:44 am (UTC)
From: [identity profile] kukutz.livejournal.com
РАПИРА был такой.

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2004-03-16 01:35 pm (UTC) - Expand

(no subject)

From: (Anonymous) - Date: 2004-03-16 10:58 pm (UTC) - Expand

(no subject)

From: [identity profile] ostap.livejournal.com - Date: 2004-03-18 07:01 am (UTC) - Expand

(no subject)

From: [identity profile] valshooter.livejournal.com - Date: 2004-03-20 02:45 pm (UTC) - Expand

durazkie voprosy

Date: 2004-03-21 09:37 pm (UTC)
From: (Anonymous)
Ja pomnju voprosy poluche.
Naji oshibki v kode (straniz dve, gde to).
Vot tut to i stanovitsa jasno, xorosho chelovek nastupait na grabli,
i nauchilo li ego eto chemu nebud'

February 2026

S M T W T F S
1 2 3 4 5 67
8 9 10111213 14
15 16 17 18192021
2223 2425262728

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 24th, 2026 11:05 am
Powered by Dreamwidth Studios