Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.07.13;
Скачать: [xml.tar.bz2];

Вниз

Как писать на С++, а не на Дельфи?   Найти похожие ветки 

 
Узурап Мамуматкулович   (2008-05-29 23:32) [80]

Удалено модератором


 
_mirage (11606)   (2008-05-29 23:39) [81]

>[79] Kostafey © (2008-05-29 23:29:00)
lisp. javascript, кстати, неплох. Lua. Objective C достаточно интересен. smalltalk.

я думаю, после прочтения списка ясно, почему жаба — чушь?

---
Understanding is not required. Only obedience.


 
Kostafey ©   (2008-05-29 23:56) [82]

> [81] _mirage (11606)   (29.05.08 23:39)

Это надо думать.
Objective C и smalltalk в противовес С++/Java
используют упомянутую тобой концепцию передачи сообщений.

Хотя «Всё — объекты» свойственны как smalltalk так во
многом и Java.

javascript - ну с Java у него только название похоже.
Язык прост и вездесушь. Хм...

Lua. Интерпретируемый. Как вообще говоря и Java.
Хотя устроен иначе. Тамошние таблицы были для
меня вестма необычны.

Нет, к сожалению из этого рассуждения
я не понял что в Java плохого по сравнению с ними...


 
Узурап Мамуматкулович   (2008-05-30 00:06) [83]

>[82] Kostafey(c) 29-May-2008, 23:56
>> [81] _mirage (11606)  (29.05.08 23:39)
>
>Нет, к сожалению из этого рассуждения
>я не понял что в Java плохого по сравнению с ними...

Хотя бы VM.


 
_mirage (8963)   (2008-05-30 00:06) [84]

>[82] Kostafey © (2008-05-29 23:56:00)
>Язык прост

гыгыгы. настолько, что 90% «пейсателей» его не знают. %-)

в жабе всё плохо. казалось бы — всё равно VM, отчего не сделать в нём возможности динамических и функциональных языков (кстати, ты этого не заметил как раз; кроме Objective C остальные перечисленные позволяют писать в функциональном стиле; хотя в smalltalk это и не очевидно).

где в жабе closures? где функции как first class citizens? какого ангела я не могу передавать параметры по ссылке? короче, чушь ваша жаба.

---
Understanding is not required. Only obedience.


 
Kostafey ©   (2008-05-30 00:25) [85]

> кроме Objective C остальные перечисленные позволяют писать
> в функциональном стиле;

Что и javascript?
Это надо отдельно еще отдельно
голову поломать как ее использовать
для чисто фукционального программирования.


> где в жабе closures?

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


> first class citizens?

Просветите что это? Общий предок всех объектов?


> какого ангела я не могу передавать параметры по ссылке?

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


 
Ослик   (2008-05-30 02:19) [86]

[85] Kostafey ©   (30.05.08 00:25)

> Просветите что это? Общий предок всех объектов?

Не "first class citizens", а "функции как first class citizens".
Думаю, Кетмар имел ввиду это:

http://local.joelonsoftware.com/mediawiki/index.php/%D0%90_%D0%B2%D0%B0%D1%88_%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D1%82%D0%B0%D0%BA_%D0%BC%D0%BE%D0%B6%D0%B5%D1%82%3F


 
_mirage (24090)   (2008-05-30 04:12) [87]

>[85] Kostafey © (2008-05-30 00:25:00)
>Что и javascript?
>Это надо отдельно еще отдельно
>голову поломать как ее использовать
>для чисто фукционального программирования.

нет, достаточно javascript выучить. вы ж, которые кричите «простенький язык», его не знаете. если б знали, не надо было бы голову ломать.

>> где в жабе closures?
>В общем случае этого нет. Конечно память
>освобождать можно.
>Я полагаю, это было сделано чтобы избежать
>возможных ошибок разработчиков, т.е.
>повысить надежность ценой снижения производительности.
ты вообще знаешь, что такое closure? судя по ответу — нет.

>> first class citizens?
>Просветите что это?

в [86] ответили.

>А чем передача по значению не устраивает?
аналог вот такого в студию: function N (n: Integer; var c: Integer; out d: Integer): Boolean;
только без идиотского boxing, это придумали дебилы, которые ниасилили передачу по ссылке. за каким членом я должен оборачивать такое в класс? это было бы простительно, если бы были closures и functional programming. но их — увы.

---
Understanding is not required. Only obedience.


 
Evgeny V ©   (2008-05-30 07:10) [88]


> _mirage (24090)   (30.05.08 04:12) [87]

Вообще вроде для JVM есть функциональный язык или языки, встречалось по крайней мере упоминание о Scheme.


> _mirage (8963)   (30.05.08 00:06) [84]


> где в жабе closures?


Есть однако
Да и про функциональный стиль - это конечно только примеры, но тем не менее для меня это было таки довольно неожиданно http://rsdn.ru/article/funcprog/fp.xml. Конечно JAVA не функциональный язык и примеры в статье это некоторая натяжка,  но не все в ней так плохо...
Хотя нравится или не нравится - это конечно дело личных предпочтений...


 
guav ©   (2008-05-30 10:07) [89]

> _mirage

Ну а чем тогда С++ не угодил, в котором замыкания есть ? (более удобный синтаксис будет в С++09, но есть они уже сейчас).


 
_mirage (27862)   (2008-05-30 11:54) [90]

>[88] Evgeny V © (2008-05-30 07:10:00)
>Вообще вроде для JVM есть функциональный язык или языки, встречалось
>по крайней мере упоминание о Scheme.

но сделаны они немножко страшновато. %-) да и разговор шёл не о JVM.

>Есть однако
их и в паскале можно сделать. вопрос не в том, как можно извратнуться, а в том, что поддерживает язык «искаропки». если что-то можно, но сложно — 99% народа это использовать не будет.

>Да и про функциональный стиль
спрячьте это немедлленно. без оптимизации tail calls никакого «функционального стиля» быть не может.

>[89] guav © (2008-05-30 10:07:00)
>Ну а чем тогда С++ не угодил, в котором замыкания есть ?

ЩИТО? компилятор в студию. чтобы можно было такое:

int NewA (int start) {
 int c = start;
 int Iterator () {
   return c++;
 }
 return Iterator;
}

int IA = NewA(10);
int IB = NewA(20);
printf("%i\n", IA());
printf("%i\n", IB());

и на выходе 10 и 20 соответственно. хотя бы такое чтобы могло.
и — нет, всякие дополнительные выховы неизвестно чего при создании closure не предлагать. это будут костыли.

---
Understanding is not required. Only obedience.


 
_mirage (13370)   (2008-05-30 11:55) [91]

вдогон:

printf("%i\n", IA());
printf("%i\n", IB());

11 и 21.
%-)

---
Understanding is not required. Only obedience.


 
Evgeny V ©   (2008-05-30 12:26) [92]


> _mirage (27862)   (30.05.08 11:54) [90]


> спрячьте это немедлленно. без оптимизации tail calls никакого
> «функционального стиля» быть не может.


Согласен, с той оговоркой,  что практического функционального прогрммирования не может быть.
А так расписывать на бумажке вполне можно.
Просто понравилась сама статья, где довольно неплохо объяснено что и к чему.:-)


 
guav ©   (2008-05-30 12:30) [93]

#include <boost/function.hpp>
#include <boost/bind.hpp>

typedef boost::function<int ()> IntFunction;

int Iterator (int& c)
{
 return c++;
}

IntFunction NewA(int start)
{
 int c = start;
 return boost::bind(Iterator, c);
}

int _tmain(int argc, _TCHAR* argv[])
{
 IntFunction IA = NewA(10);
 IntFunction IB = NewA(20);
 printf("%i\n", IA());
 printf("%i\n", IB());
 printf("%i\n", IA());
 printf("%i\n", IB());
 return 0;
}


 
guav ©   (2008-05-30 12:30) [94]

Output как и ожидалось
10
20
11
21


 
guav ©   (2008-05-30 12:38) [95]

Теперь про замыкания в С++ с более человеческим лицом.
Такое будет только в C++0x ,вот тут можно глянуть http://en.wikipedia.org/wiki/C%2B%2B0x#Lambda_functions_and_expressions , правда это не окончательный вариант, они ещё добавили const-корректность и ещё могут чего-то успеть впихнуть до выхода стандарта.


 
_mirage (22471)   (2008-05-30 12:44) [96]

>[94] guav © (2008-05-30 12:30:00)
я не понял, что это ты написал. я тебе какой синтаксис показал? при чём тут костыли буста? нафига мне итератор в пространстве имён не NewA? что это за аргумент в итераторе?

короче. чушь. кривой эмулятор.

>[95] guav © (2008-05-30 12:38:00)
там тоже чушь. я что, ёжик — руками указывать, какие переменные из замыкания мне нужны? даже простейший лисп умеет это определять сам. алсо, не заметил, как вернуть наружу лямбду всместе с её замыканием для вызова из другой функции, не той, где лямбда создана. короче, как не крась костыли — они всё равно остаются костылями.

---
Understanding is not required. Only obedience.


 
guav ©   (2008-05-30 13:07) [97]

> [96] _mirage (22471)   (30.05.08 12:44)

> я не понял, что это ты написал

Это не аргумент.
я бы не понял если бы ты что-то написал на Lua, и что ?

> [96] _mirage (22471)   (30.05.08 12:44)
> нафига мне итератор в пространстве имён не NewA? что это за аргумент в итераторе?

Вложеных функций в С++ таки да, нету. Но сами замыкания есть.
Или я опять не понял ?

Начёт буста, ну это считай стандартная библиотека (по кр мере использованая часть буста, уже включена в STL). Примерно как в JavaScript встроены стандартные свойства для поддержки масссивов и ооп.

> там тоже чушь. я что, ёжик — руками указывать, какие переменные
> из замыкания мне нужны?

Указывай [=].
Смысл указывания - чтобы была возможность захвата по ссылке.

> алсо, не заметил, как вернуть наружу лямбду всместе с её
> замыканием для вызова из другой функции, не той, где лямбда
> создана.

1. auto type, т.е. тип вычисляемый компилятором
2. std::function, то что сейчас boost::function
3. Если не нужно захваченных переменных, достаточно захватить ссылки (например на поля класса или ссылки как параметры), то reference_closure

PS: Если очень хочется всё вовнуть запихнуть уже сейчас, есть boost::lambda

boost::function<int ()> NewA(int start)
{
 return boost::bind<int>(boost::lambda::_1++, start);
}

int _tmain(int argc, _TCHAR* argv[])
{
 boost::function<int ()> IA = NewA(10);
 boost::function<int ()> IB = NewA(20);
 printf("%i\n", IA());
 printf("%i\n", IB());
 printf("%i\n", IA());
 printf("%i\n", IB());
 return 0;
}



 
_mirage (16420)   (2008-05-30 13:19) [98]

>[97] guav © (2008-05-30 13:07:00)
>> я не понял, что это ты написал
>Это не аргумент.

в данном случае не понял не язык, не понял, что это продемонстрировать должно было. кроме того, что цпп — страна костылей. %-)

>Начёт буста, ну это считай стандартная библиотека
неа, не буду я так считать, пока она не будет таковой признана хотя бы в ANSI/ISO/ECMA.

>Смысл указывания — чтобы была возможность захвата по ссылке.
а компилятор дурак, сам не додумается, ага. может, ему ещё пояснить, какой машинный код надо генерировать?

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

>уже сейчас, есть boost::lambda
оно держит только простейшие выражения? нет, такого нам не надо. %-)

весь спор изначально странен: ты мне пытаешься доказать, что что-то можно сделать при помощи костылей. я разве с этим спорил? можно. можно и поле пахать детской лопаткой, но неудобно. поясню свою точку зрения: я лично не вижу смысла засовывать в зад отличному макроассемблеру костыли. я вижу смысл написать на макроассемблере язык более высокого уровня и дальше писать на нём. ну не лезут closures, continuations, lambdas, etc. в нединамические языки, не лезут. и как ты их ихолентой не приматывай — всенепременно где-то, что-то, да отвалится. потому что не лезет. а то я щаз попрошу показать мне dynamic scoping, и тут вообще начнётся язерный ужас.

---
Understanding is not required. Only obedience.


 
guav ©   (2008-05-30 13:41) [99]

> неа, не буду я так считать, пока она не будет таковой признана
> хотя бы в ANSI/ISO/ECMA.

Эти костыли входят в TR1 , через годик ISO их признают.


> [98] _mirage (16420)   (30.05.08 13:19)
> весь спор изначально странен: ты мне пытаешься доказать,
> что что-то можно сделать при помощи костылей. я разве с этим спорил?

Я просто считаю что если можно сделать что-либо, то оно есть, не важно встроено ли онО в язык или просто есть готовая библиотека. С чем ты спорил трудно понять из вопроса "ЩИТО?".


> ну не лезут closures, continuations, lambdas, etc. в нединамические
> языки, не лезут.

Да ну. closures и lambdas даже в Delphi обещают :)

PS: Да, я знаю, что я "типичный быдлокодер".


 
guav ©   (2008-05-30 14:17) [100]

Насчёт оригинального сабжа. Т.к. автор не видит кучи ошибокв примере здесь http://delphimaster.net/view/15-1211457004/ , советую изучить основы С++ , а не выдумывать проблему из "пытаюсь построить архитектуру так, как строил бы на Дельфе. Но это же в корне не правильно!"


 
@!!ex ©   (2008-05-30 14:25) [101]

> советую изучить основы С++

Этим я занимаюсь.
Однако проблемы это не решает.


 
guav ©   (2008-05-30 14:31) [102]

> [101] @!!ex ©   (30.05.08 14:25)
> Однако проблемы это не решает.

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


 
_mirage (11015)   (2008-05-30 14:34) [103]

>[99] guav © (2008-05-30 13:41:00)
>Эти костыли входят в TR1 , через годик ISO их признают.

вот тогда оно и будет стандартом. %-)
вообще, пора бы. а то бояре глаголют, что STL очень невменяемая.

>Я просто считаю что если можно сделать что-либо, то оно есть, не важно
>встроено ли онО в язык или просто есть готовая библиотека.

разница есть. встроеное часто эффективней, и синтаксис у него приятней.

>Да ну. closures и lambdas даже в Delphi обещают :)
ещё раз: нормальная реализация этих вещей возможна только в динамических языках на базе VM. всё, что возможно в языках типа C и Delphi — кривые костыли, которые частично иногда работают. ключ — динамика. это не значит, что C и Delphi — плохо, это значит, что они не для подобных штук.

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

>Да, я знаю, что я "типичный быдлокодер".
кажется, я этого не говорил.

---
Understanding is not required. Only obedience.


 
guav ©   (2008-05-30 15:05) [104]

> [103] _mirage (11015)   (30.05.08 14:34)
> а то бояре глаголют, что STL очень невменяемая.

Разные есть бояре, от разделяющих твою точку зрения про С++, до фанатов кинжки Александреску про темплейты.

По мне, уже вполне вменяемая, в Delphi или С++ такого счастья нет. А будет лучше. В Delphi никакой библиотеки контейнеров нет (всякие частные решения вроде THashedStringList или того что в unit contnrs не в счёт, пародия на STL - Delphi Container Library - тоже)

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


> [103] _mirage (11015)   (30.05.08 14:34)
> разница есть. встроеное часто эффективней, и синтаксис у
> него приятней.

Эффективность типа "[93] будет два вызова на каждый вызов замыкания, а когда замыкания будут встроены то нуль т.к. всё заинлайнится" ? Ну да эффективнее, но если тебя беспокоят такие мелочи эффективности, то динамические языки тебе тоже не подходят.

Встроенное лучше, с этим я не спорю. Но про не встроенное всё можно утверждать что оно есть.


> а возмущаюсь я именно тем, что из хорошего макроассемблера
> C повыкидывали всё, что делало его хорошим макроассемблером
> и добавили кучу мусора.

Ой, как будто С запретили.


> кажется, я этого не говорил.

Разве это не обобщение на всех, кого для каких-либо задач устраивает С++ ?

> [69] _mirage (20223)   (29.05.08 22:08)
> натурально, концепция «расширеных структур» в черепа быдлокодеров
> ещё кое-как помещается, а концепция передачи сообщений —
> уже нет.


 
__mirage_   (2008-05-30 16:35) [105]

>[104] guav © (2008-05-30 15:05:00)
>Или по-твоему даже контейнерам нечего делать в нединамическом языке ?

только не через шаблоны. в oo2c, например, есть generics.

>Ой, как будто С запретили.
нет. но цпп с C не совместим.

>Разве это не обобщение на всех, кого для каких-либо задач устраивает
>С++ ?

меня спрашивали про причины популярности — я ответил, что быдлокодерам другое сложно. но как отсюда следует, что все использующие — быдлокодеры, лично мне не ясно. если из A следует B, то не обязательно из B следует A. и не надо обобщать частность на весь класс.

---
Understanding is not required. Only obedience.


 
guav ©   (2008-05-30 18:26) [106]

> [105] __mirage_   (30.05.08 16:35)
> только не через шаблоны.

Чем автоматизированный копипаст на шаблонах хуже автоматзированного копипаста на макросах ?

> [105] __mirage_   (30.05.08 16:35)
> нет. но цпп с C не совместим.

Какие из этого претензии к именно С++ ?
Что спомпиленый С код можно прилинковать к С++ ? Так к другим несовместимым языкам тоже.
Что синтаксис С++ похож на С ? Так у многих несовместимых языков синтаксис похож на С.


 
__mirage_ ©   (2008-05-30 19:00) [107]

>[106] guav © (2008-05-30 18:26:00)
>на макросах ?

где я, блин, сказал «макрос»?!

>Какие из этого претензии к именно С++ ?
а такие, что труп страуса вякал: «оно должно быть совместимым с цэ, чтобы не переписывать кучу кода». если бы этого не вякали — претензий бы не было.

---
Understanding is not required. Only obedience.


 
имя   (2008-05-30 19:04) [108]

Удалено модератором


 
guav ©   (2008-05-30 20:09) [109]

> [107] __mirage_ ©   (30.05.08 19:00)
> где я, блин, сказал «макрос»?!

тогда поясни

> отличный макроассемблер



> оно должно быть совместимым с цэ, чтобы не переписывать
> кучу кода

Компиляторы С++ также могут компилировать С, т.к. различия не очень большие и реализация С компилятора на базе С++ компилятора не сильно затруднительна. Более того, то что получилось может быть слинковано в одну программу. Таким образом, нет смысла переписывать имещющийся С код на С++. Где Страуструп ошибся ?

И вообще, зачем вспоминать высказывания типа "640 кб должно быть достаточно всем" ?
Паскаль вот создавался для обучения процедурному программированию, так что его применяют только студенты ? А жаба - для написания софта для бытовой техники, получается, что серверные на ней приложения пишутся для пылесосов и кофеварок ?


 
ketmar ©   (2008-05-30 20:19) [110]

>[109] guav © (2008-05-30 20:09:00)
>тогда поясни

я сказал generics.

>Компиляторы С++ также могут компилировать С
а при чём тут компиляторы и их фичи? O_O

>И вообще, зачем вспоминать высказывания типа «640 кб должно быть
>достаточно всем» ?

ну да. чего там на какого-то изобретателя языка внимание обращать. кто он такой, в самом  деле. представляю: приходит, значит, Ларри Волл на конференцию по Perl, а ему: «ты кто такой? мы тебя не звали. иди на!»

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

его вообще никто не применяет. а то, что применяют, паскалем не является. ты хочешь сказать, что нечто, назывыаемое сейчас «C++» — это не «C++», а одно название? так где они тогда потеряли идею совместимости с C? (хинт: искать труп птички)

>серверные на ней приложения пишутся для пылесосов и кофеварок ?
нет, как раз их пишут пылесосы и кофеварки.

---
Understanding is not required. Only obedience.


 
palva ©   (2008-05-30 20:36) [111]

> а при чём тут компиляторы и их фичи?
При том, что их существование доказывает, что C совместим с C++ (или наоборот, это уж как понимать).

> ну да. чего там на какого-то изобретателя языка внимание обращать.
А никто не обращает на него внимания. Обращают внимание на его слова. Он поставил перед собой эту цель и эту цель он достиг.

>> Паскаль вот создавался для обучения процедурному программированию, так
>> что его применяют только студенты ?
> его вообще никто не применяет.

Вы сильно заблуждаетесь. Я его применяю.

> так где они тогда потеряли идею совместимости с C?

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


 
ketmar ©   (2008-05-30 20:41) [112]

>[111] palva © (2008-05-30 20:36:00)
>При том, что их существование доказывает, что C совместим с C++ (или
>наоборот, это уж как понимать).

нет. оно доказывает всего лишь существование гибридных компиляторов. у меня вот GCC умеет паскаль и фортран компилять — это значит, что они тоже с C совместимы?

>Вы сильно заблуждаетесь. Я его применяю.
да? ссылочку на компилятор можно? ucsd pascal, небось?

>Тоже очень легко ответить на этот вопрос — нигде
угу. потому что нельзя потерять то, чего не было.

---
Understanding is not required. Only obedience.


 
guav ©   (2008-05-30 20:46) [113]

> [110] ketmar ©   (30.05.08 20:19)
> я сказал generics.

generics это конечно хорошо для высокоуровневого языка со статичесокй типизацией.

Возвращаясь к С/С++. Почему макроассеблер со своими макросами это хорошо, а шаблоны - уже нет ?


> а при чём тут компиляторы и их фичи?

При том, что С++ достаточно близок к С, что способствует реализуемости компиляции С компилятором С++ и делает Сшный код совместимым с этими С++ компиляторами.
Речь не идёт же о том что С++ пытается быть надмножеством С, С++ просто близок к С, для облегчения обеспечения совместимости.


> его вообще никто не применяет. а то, что применяют, паскалем
> не является.

Не понимаю. Почему паскаль не является паскалем.


> ну да. чего там на какого-то изобретателя языка внимание
> обращать.

Много ли влиял создатель паскаля на развитие Борландовского паскаля ?


 
palva ©   (2008-05-30 20:56) [114]

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

> ucsd pascal, небось?
А это что за зверь? Да так, на Delphi 7 иногда пишу.


 
ketmar ©   (2008-05-30 21:01) [115]

>[113] guav © (2008-05-30 20:46:00)
>Возвращаясь к С/С++. Почему макроассеблер со своими макросами это
>хорошо, а шаблоны — уже нет ?

штука в том, что C сознательно плюёт на контроль и позволяет засунуть урановый лом себе в анус — потому что макроассемблер. а цпп, вроде, позиционировался и как «защищённый». его шаблоны и недобны, и не дают норамльного контроля типов (потому что не обязаны быть частью компилятора — это таки препроцессор).

>Речь не идёт же о том что С++ пытается быть надмножеством С
да? O_O

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

>Не понимаю. Почему паскаль не является паскалем.
можно мне у Вирта в описании паскаля увидеть модули и объекты? ссылочку? то, что модули приволокли из Modula2 (причём криво) уже выводит такой «паскаль» из «паскализма». это язык, основаный на паскале, но никак не паскаль.

>Много ли влиял создатель паскаля на развитие Борландовского паскаля ?
много ли его спрашивали? алсо, у борланда Turbo/Borland Pascal, а не pascal. явно указано, что диалект. мало ли, кто что в свой диалект добавит.

---
Understanding is not required. Only obedience.


 
ketmar ©   (2008-05-30 21:04) [116]

>[114] palva © (2008-05-30 20:56:00)
>Просто обычно компилятор даже не может различить, на каком языке код.
>По расширению файла, конечно, можно понять. Но если переименовать
>файл, то компилятор создаст идентичный код.

если это про си, то чушь полная.

#include <stdlib.h>

int main (int argc, char *argv[]) {
 char *c = malloc(10);
}

gcc: ok
g++: a.cpp: In function "int main(int, char**)":
a.cpp:7: error: invalid conversion from "void*" to "char*"

вопросы есть?

>А это что за зверь?
компилятор такой.

>Да так, на Delphi 7 иногда пишу.
это не паскаль.

---
Understanding is not required. Only obedience.


 
palva ©   (2008-05-30 21:18) [117]

ketmar ©   (30.05.08 21:04) [116]
> если это про си, то чушь полная.
Это про си. А почему чушь?

> вопросы есть?
Вопрос единственный - ну и что?

> это не паскаль.
Я могу еще раз повторить - я пишу на паскале.

Да, либо вы слишком умный для меня, либо пытаетесь вкладывать в термины свое собственное понимание. А общепринятое понимание оставляете для "быдлокодеров". Мы не поймем друг друга.


 
@!!ex ©   (2008-05-30 21:27) [118]

> [117] palva ©   (30.05.08 21:18)
> ketmar ©   (30.05.08 21:04) [116]
> > если это про си, то чушь полная.
> Это про си. А почему чушь?
>
> > вопросы есть?
> Вопрос единственный - ну и что?

То, что С++ компилятор не совместим на 100% с С.


 
ketmar ©   (2008-05-30 21:36) [119]

>[117] palva © (2008-05-30 21:18:00)
>Вопрос единственный — ну и что?

да ничего. кроме того, что цпп с C не совместим. и если «поменять расширение», то компилятор очень даже обидится, и никакого кода не создаст вовсе.

засим беседу с palva завершаю ввиду того, что оппонент сам не знает, что хочет сказать.

---
Understanding is not required. Only obedience.


 
palva ©   (2008-05-30 21:49) [120]

ketmar ©   (30.05.08 21:36) [119]

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

Я вам не оппонировал, я вас информировал. В частности о совместимости языков.
Все что я хотел сказать, я сказал.

@!!ex ©   (30.05.08 21:27) [118]
>> Вопрос единственный - ну и что?
> То, что С++ компилятор не совместим на 100% с С.
Это понятно. Правда я говорил нечто иное.



Страницы: 1 2 3 4 вся ветка

Форум: "Прочее";
Текущий архив: 2008.07.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.74 MB
Время: 0.015 c
8-1182254046
White_Leo
2007-06-19 15:54
2008.07.13
Определение частоты сигнала


15-1212330216
Foo Fighters
2008-06-01 18:23
2008.07.13
Скрипт загрузки файла на сервер


15-1212066266
Dmitry S
2008-05-29 17:04
2008.07.13
OleLoadPictureFile "не видит" png


15-1211963337
Dmitry S
2008-05-28 12:28
2008.07.13
jack128


2-1213459702
WebSQLNeederrr
2008-06-14 20:08
2008.07.13
WebBrowser.Navigate( page.html ) - загрузить не брать из кеша





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский