LINUX.ORG.RU
ФорумTalks

C и C++ - это разные языки ?


0

0

блин, пипец )) - щас чуть не до крика спорил с коллегой (Oracle DBA), о том, что Delphi и Pascal - это разные языки ))
LOL Чувак настолько педант, что просто не понимает разницы...
..потом оказалось, что для него C и C++ тоже один язык )) !

афигеть! - приходится работать с такими ламерами (((
..я ему и ссылки на wikipadia дал, и на статьи (на нормальных сайтах) - пофиг...

дуб полный.

можно ли как-то ему доказать это ? Есть ли какие-то более весомые источники на специяикацию языков, чем википедия ?


P.S. - just for Fan ))

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

> если язык улучшается - это значитт выходит новая версия языка а несоздается новый язык как таковой -

Вау! Так чё, MSDOS - это таки QDOS? А Pentium4 - это такой разжиревший 8086? Английский - это пангерманский (правда, тут "улучшается" весьма сомнительно, в основном он деградировал)?

Скажи своему умнику, что новые языки на пустом месте уже давно не создаются. ВСЕГДА берётся за основу уже существующий, чаще - сразу несколько. И чё делать теперь?

Паскаля, кстати, тоже нет. Есть алгол. Так-то... :)

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

> если язык улучшается - это значитт выходит новая версия языка а не создается новый язык как таковой -

C++ - это не новая версия C. C продолжил существование и никуда не делся. И даже не законсервировался. Читать тут: http://en.wikipedia.org/wiki/C_programming_language

C++ появился в 80-х, а C продолжал развиваться. C99 ни о чём не говорит?

anonymous
()

C++ это продвинутый препроцессор для C

dilmah ★★★★★
()

> C и C++ - это разные языки ?

Да, и цели у них совершенно разные, кстати. Например, для вычислительных задач нововведения C++ бесполезны. Как и для программирования железа. И аффтары у этих езыгов разные. А то, что конструкции похожи, - ну дак и у java похожие, только это ничего не значит.

anonymous
()

> можно ли как-то ему доказать это ?

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

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

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

Билин, форматирование

C99 - это лишь стандарт. Раньше стандарта не было, а язык был. Стандарты
нужны для совместимоси. Когда то диалекты C прилично отличались друг от
друга, но никто же не кричал, что разные языки. А компилится исходник
или не компилится - не критерий. Пример от dilmah:

$ cat >class.cxx <<END
> int main()
> {
>    int class = 0;
>    return class;
> }
> END
$ g++ -Dclass=_class -oclass class.cxx
$ ./class

Или поробуйте скомпилить исходник со штучками от M$.

Один это язык или два разных - "это уже тонкий филосовский вопрос"
(c) Ходжа Насреддин :)

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

> как с ним спорить - я не знаю ))

А никак. Ты точно такой же упертый человек как и он. Ваш спор бестолковый. Вы спорите об определениях которые к сути вещей никакого отношения не имеют.

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

>Пример программы на C, не являющейся C++ программой? 

struct A {
    int a;
};

int main()
{
    struct A a = { .a = 1 };
    return a.a;
}

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

> Или поробуйте скомпилить исходник со штучками от M$.

Это - КОСТЫЛИ. Надо объяснять, что непосредственного отношения к ЯЗЫКУ они не имеют?

> C99 - это лишь стандарт. Раньше стандарта не было, а язык был.

http://en.wikipedia.org/wiki/ANSI_C

Ни разу не стандарт, правда?

> Стандарты нужны для совместимоси. Когда то диалекты C прилично отличались друг от друга, но никто же не кричал, что разные языки.

Потому что отличия не были ПРИНЦИПИАЛЬНЫМИ. Наличие ООП - это ПРИНЦИПИАЛЬНОЕ отличие.

> А компилится исходник или не компилится - не критерий.

А вот правила объявления переменных - это критерий.

anonymous
()

>можно ли как-то ему доказать это ?

Доказаать нельзя. Сначала нужно согласовать определения понятий.

>Есть ли какие-то более весомые источники на специяикацию языков, чем википедия ?

ISO?

Нетехнический аргумент :-) Языки разные, потому что судьба у них разная!

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

>Потому что отличия не были ПРИНЦИПИАЛЬНЫМИ. Наличие ООП - это ПРИНЦИПИАЛЬНОЕ отличие.

И не только ООП. Принципиальность, знаете ли, линейкой не измерить. Это как в мультике про кучу. 10 орехов это куча или не куча, а 3 ореха?

long float - это принципиальное отличие или нет? А __try/__funally? А перегрузка функций в LCC, а расширения GCC - это новые языки или нет?

Только с ООП вас никто писать не заставляет.

>http://en.wikipedia.org/wiki/ANSI_C

>Ни разу не стандарт, правда?

Мало того есть и другие стандарты на C! Или хотите сказать, что сначала собрались стандартописатели и придумали стандарт ANSI C, а потом K&R придумали С. Лихо это у них получилось :)

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

К слову, в ранних версиях C не было структур и много чего другого, т.е. С точки зрения современных стандартов K&R придумали не C.

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

> И не только ООП. Принципиальность, знаете ли, линейкой не измерить. Это как в мультике про кучу. 10 орехов это куча или не куча, а 3 ореха?

> long float - это принципиальное отличие или нет? А __try/__funally? А перегрузка функций в LCC, а расширения GCC - это новые языки или нет?

> Только с ООП вас никто писать не заставляет.

При чём тут это? ООП - это совершенно новая концепция, ставшая модной в 70-80-х годах. Сравнивать её с long float - вы мне делаете очень смешно, молодой человек, своими неуклюжими попытками оправдаться. C++ потому и стал новым языком, а не наречием, что реализовал эту концепцию. А перегрузка сама по себе ничего не значит, это всего лишь небольшое количественное измерение, без качественного перехода.

> Мало того есть и другие стандарты на C! Или хотите сказать, что сначала собрались стандартописатели и придумали стандарт ANSI C, а потом K&R придумали С. Лихо это у них получилось :)

Не, вы сегодня явно не в ударе. Снова цитирую вас: "C99 - это лишь стандарт. Раньше стандарта не было, а язык был." Так какого стандарта там раньше не было? C99? Ну, и к чему эта фраза? Так просто, лишь бы что-то написать?

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

> К слову, в ранних версиях C не было структур и много чего другого, т.е. С точки зрения современных стандартов K&R придумали не C.

Повторяю - КАЧЕСТВЕННЫХ скачков не было. Язык просто обрастал новыми фичами В РАМКАХ ОДНОЙ ПАРАДИГМЫ. Качественный скачок произошёл только с внедрением ООП. Вы, молодой человек, я надеюсь, только прикидываетесь дурачком?

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

Как-то у Кошкина спросили, правда ли, что Т-34 это слегка модифицированный танк Кристи. Кошкин ответил: "Ну да, мы только к пуговице пальто пришили". Кхмм... у С с С++ общего - только операторы for и if. То, что отличает C++ от С больше чем весь C. Вы хотя бы по количеству ключевых слов посмотрите.

Beria.

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

Да ну? C и C++ практически неотличимы. Императивный низкоуровневый язык с арифметикой указателей и препроцессором. Всё. На фоне разницы между существующими языками их отличить невозможно вообще, одну нишу занимают. Паскаль тоже не очень далеко от них ушел, различия лишь в синтаксисе, а синтаксис - это херня.

anonymous
()

Лисп и Си - разные языки. Пролог и Intercal - разные языки. Unlambda и Tcl - разные языки. Java и SML - разные языки. Ruby и Haskell - разные языки. А Си и Си++ - одинаковые языки, если рассматривать в таком масштабе. Паскаль и Си - одинаковые языки. Дельфи и C++ - одинаковые языки.

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

>long float - вы мне делаете очень смешно, молодой человек, своими неуклюжими попытками оправдаться.

Я тут батенька не оправдываюсь, а навожу тень на плетень :). long float привел с перегрузкой. Не отрывайте одно от другого

>А перегрузка сама по себе ничего не значит, это всего лишь небольшое количественное измерение, без качественного перехода.

Так вот мне и интересно, чем это вы меряете long float, перегрузку и модную концепцию 70-80?

>Не, вы сегодня явно не в ударе. Снова цитирую вас: "C99 - это лишь стандарт. Раньше стандарта не было, а язык был." Так какого стандарта там раньше не было? C99? Ну, и к чему эта фраза? Так просто, лишь бы что-то написать?

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

Тут некоторые ссылались на C99 как на критерий того, является ли тот или иной язык языком C или нет. Я утверждаю, что это неважно.

anonymous
()

читайте Кауфмана, ламеришки

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

> Тут некоторые ссылались на C99 как на критерий того, является ли тот или иной язык языком C или нет.

Ложь. На C99 я ссылался, чтобы доказать: язык C после возникновения C++ не умер и не замер, а продолжал свой особый путь. :)

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

anonymous
()

Установил как-то R00T свой палантир напротив Ирсиного, и вызвал в обоих образ Луговского. Как они друг с другом втроем переругааалииись...

Xellos ★★★★★
()

>> Delphi и Pascal - это разные языки ))

Delphi - это не язык, а среда разработки, а язык в ней Object Pascal :-)

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

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

Не я. Самому досталось :)

>Кто не знает смысла слова "семантика", тот, во первых, является дерьмом и ничтожеством

kosmonavt
()

Супир, удаленные убили :)

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

>Изобрази что-нибудь похожее на лямбду в C. В C++ уже сделано.

Свершилось чудо! :)

#include <stdio.h>

#define LAMBDA(ret,args,body) ({ \
    static                       \
    ret lambda args body;        \
    &lambda;                     \
})

void fcall(void (*pfunc)(void))
{
   pfunc();
}

int main()
{
    fcall(LAMBDA(void,(void), {
        puts("Hello world!");
    }));
    return 0;
}

kosmonavt
()

>Delphi и Pascal - это разные языки ))

Ты тоже лопухнулся: Delphi ни разу не язык программирования. Это среда разработки, а язык там используется Objective Pascal.

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

Какой-какой Паскаль? Objective? Лопухнулся и ты - язык называется Delphi Pascal (см. доку по Delphi 7).

Begemoth ★★★★★
()
Ответ на: комментарий от php-coder

Нет такого языка "Objective Pascal". Есть "Object Pascal" и есть "Objective C"

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

>А аналог такого кода:

Да ладно, а то ЛИСП получится :)

>Да и сделано с _двумя_ GCC'шными расширениями.

С тремя.

Как-то давно наткулся на форум, посвященный анонимным функциям на С, а ссылочку потерял. Ты случайно не в курсе?

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

program test;
var
  TestFile: Text;
begin
  Assign(TestFile,'c:\config.sys');
  Reset(TestFile);
  Close(TestFile);
end.

Скомпиль-ка в delphi, зайчик.
Не, так не скомпилится .. там надо use (или uses) dos (или msdos)
Какая то такая фишка - то скомпилится и даж выполнится.
Обжектпаскаль включал в себя весь паскаль.

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