какая разница между использованием структур и классов

marizha

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

freezer

в c++ разница только по дефолтовым модификаторам доступа и наследования. У struct - public, у class - private

ma3yp

И еще есть какая-то тонкая разница, настолько тонкая, что я ее не помню...

krishtaf

механизм конструкторов и деструкторов по умолчанию был создан именно для struct-ов

freezer

ну а разница-то в чем?...
я вот подозреваю, что если написал
struct X{int x;};
class Y{int y;}
то так уже не напишешь:
struct Y yyy;
class X xxx;

krishtaf

а как это к теме относится ?
я просто к тому что структура не может быть описана без конструктора/деструктора по умолчанию, а класс может.

freezer

Вот тебе класс и структура без конструктора по умолчанию...


class A
{
public:
A(int, int){}
};
struct B
{
public:
B(int, int){}
};
int main
{
B y;
A x;
}



d:\Users\Sergey\printf_test\printf_test.cpp(19) : error C2512: 'B' : no appropriate default constructor available
d:\Users\Sergey\printf_test\printf_test.cpp(20) : error C2512: 'A' : no appropriate default constructor available

ты про такое?.. и в чем разница?

ppplva

Можешь привести ссылку на стандарт ?
Контраргумент:


struct A {
int a_;
A(int a) : a_(a) {};
};
main {
A a;
}



$ gcc 1.cpp -o 1
1.cpp: In function `int main':
1.cpp:6: error: no matching function for call to `A::A'
1.cpp:1: error: candidates are: A::A(const A&)
1.cpp:3: error: A::A(int)


gcc (GCC) 3.3.3 (Debian 20040429)

ppplva

freezer

у меня ms cl 13.10.3077

krishtaf

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

daru

О чем спор-то, господа? Насколько мне известно, хотя бы по части трактования структур и классов cl и gcc не расходятся...
А Atilla с самого начала всё сказал правильно.

krishtaf

а никто и не спорит
я просто дополнил атиллу

freezer

ну это скорее концептуальная поправка... чем структура Си или структура Си++ ведущая себя как структура Си, отличается от класса Си++

krishtaf

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

freezer

да какое ограничение? есть дефолтовый конструктор. Пока в классе/структуре никакого конструктора нет (а в Си-шных структурах это так он есть, как только ты какой-либо конструктор объявляешь - он пропадает. Это касается как класса, так и структур Си++. Так что синтаксической разница в ключевых словах struct и class - только в public/private

krishtaf

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

freezer

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

krishtaf

а

irina-sokolov

С и С++ - ацтой

krishtaf

как и все остальное.

irina-sokolov

все познается в сравнении.
С и С++ по сравнению с имеющимися средствами - ацтой.
Что скажешь?

krishtaf

по сравнению с идеалом
все имеющееся хуже чем ацтой.

Nugos

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

Aleksei66

А ты, вообще, много языков знаешь?

Dasar

Расшифруй, плиз, что значит словосочетание "оптимальная программа".

Nugos

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

Nugos

По большому счету в смысле производительности по процессору.

Dasar

Лучше список "основных на сегодня" приведи, тогда будет проще дисскутировать.

Dasar

Забыл спросить.
Про какой класс программ ты говоришь?

Nugos

C++, Delphi, VB, C#, Java.

Nugos

А какая разница если речь о производительности.

buba741

>C++, Delphi, VB, C#, Java
Если ты это всё знаешь на уровне, то "профессионально" - это неверная оценка

Nugos

А ты посмотри сколько времени уже прошло... В то время я только начинал на с++ профессионально.

Dasar

Расчетные программы (в том числе и высокопроизводительные например, пишут почему-то на фортране.
Программы для того же Крея на C++ тоже не напишешь.
Программы, которые обрабатывают большие объемы данных пишут на Sql-е, а не на C++
Высокопроизводительный телекомуникационный софт пишут на всякой экзотике
и т.д.
Поэтому стоит очертить класс-задач для которых ты объявляешь C++ высокопроизводительным языком.

buba741

>А ты посмотри сколько времени уже прошло...
Гы-гы
Ладно, подождём, пока ты напишешь очередную лажу

ppplva

> Расчетные программы (в том числе и высокопроизводительные например, пишут почему-то на фортране.
Инерция мышления.

oleg_n

> Программы, которые обрабатывают большие объемы данных пишут на Sql-е, а не на C++
интересно, на чём написан биллинг МТС-а, что он тормозной такой

Nugos

>Расчетные программы (в том числе и высокопроизводительные например, пишут почему-то на фортране.
Ну дык на фортране библиотек научных море, вот и пишут, хотя и на с++ под суперкомпьютеры нередко пишут.
>Программы, которые обрабатывают большие объемы данных пишут на Sql-е, а не на C++
Ты лучше подумай на чем сами базы данных пишут...
>Высокопроизводительный телекомуникационный софт пишут на всякой экзотике
Тут ничего не скажу, но наверняка и с++ используют.
>Поэтому стоит очертить класс-задач для которых ты объявляешь C++ высокопроизводительным языком.
В общем я имею в виду системное ПО ну и игры.

Chupa

С утм сравнил?

buba741

>Расчетные программы (в том числе и высокопроизводительные например, пишут почему-то на фортране.
На С их тоже прекрасно пишут, очень много и самых разных
Статистики не имею, но сдаётся мне, что фортран всё-таки постепенно умирает
>Программы, которые обрабатывают большие объемы данных пишут на Sql-е, а не на C++
Это команды для них пишут на sql, а вот сами они как раз на С (С++ ?) написаны

oleg_n

Nugos

>Это команды для них пишут на sql, а вот сами они как раз на С (С++ ?) написаны
Ну почему ж обязательно на с или с++, подойдет любой из вышеназванных языков, все они с SQL запросами умеют работать.

buba741

>Ну почему ж обязательно на с или с++, подойдет любой из вышеназванных языков, все они с SQL запросами умеют работать.
Не тупи.
Я говорю про популярные реализации СУБД, а не про прикладной (к ним) софт.

oleg_n

perl рулит?

Dasar

не только.
В язык фортран специально оговаривается, как проводятся вычисления, для того, чтобы не было проблем с окрулениями, потерями точности и т.д.
Поэтому там где компилятор C++ пытается выжать максимум скорости, компилятор фортрана старается получить правильный результат.
Пример:
[c]
double sum = 0;
for (int i = 0; i < 1e8; ++i)
{
sum = 100 - f(i);
}
[/c]
Оптимизирующий компилятор C++ из этого сделает следующее:
[c]
double sum = 1e10;
for (int i = 0; i < 1e6; ++i)
sum -= f(i);
[/c]
и это будет неправильно, т.к. если f(i) очень маленькая, то будет идти потеря точности, и результат будет неправильным.

1234554321

угу. а больше всего в мире VB-программистов тоже почему-то

Nugos

Эээ батенька сам не тупи
Это команды для них пишут на sql

если имел ввиду реализации так бы и писал - реализации, а не команды на sql...

Dasar

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

ppplva

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

1234554321

>На практике, никто не умеет на нем писать программы (отличные от тривиальных которые работают быстрее чем C
поэтому периодически в с-коде мелькают вставки ассемблера

Nugos

Ну дык они, как правило, тривиальны...

1234554321

>Самым высокопроизводительным языком является маш. код. точка.
ты наверное не пробовал написать что-нибудь махонькое на асме и фортране и сравнить производительность? попробуй. удивишься

1234554321

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

Dasar

на asm-е умеют писать куски кода, которые являются "узкими местами".
> На практике, никто не умеет на нем писать программы
Я с тобой согласен, поэтому и намекаю, что язык надо рассматривать не с идеальной точки зрения, а с реальной.
Насколько быструю программу напишет на этом языке реальный программист за реальное время, и насколько реальное качество (масштабируемость, изменяемость, отсутствие ошибок, переносимость, повторность использования и т.д.) будет у получившейся программы.

Nugos

Т.е. все твои маленькие вставки нетривиальны, силен

Dasar

Даже после интеловского compilator-а ряд мест в сгенерированном коде можно улучшить.
Поэтому маш. код является более высокопроизводительном в идеальном случае.

1234554321

забавная логика

buba741

>А на C++ пишут только команды, которые указывают компилятору, какие маш. коды надо генерировать.
Написанному на С/С++ компилятору, кстати
>Это продолжение твоей логики.
Абсурдное, причём
>Тебе абсурдность твоего утверждения видна?
Неа.
Сложности задач по написанию sql-запроса и по разработке СУБД, которая эти запросы перемалывает, отличаются на несколько порядков. (И, как правило, уровень интеллекта разработчиков примерно так же )
И как видим, вторую (сложную) задачу, научились пока только с помощью С нормально решать.

Nugos

У тебя тоже, я же написал: "как правило"

Dasar

> Написанному на С/С++ компилятору, кстати
Не факт.
Компиляторы чаще пишут на чем-нибудь своем (более заточенном для написанния компиляторов но при этом активно используют, конечно, C++-вставки.

Dasar

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

buba741

>Не факт.
>Компиляторы чаще пишут на чем-нибудь своем (более заточенном для написанния компиляторов но при этом активно используют, конечно, C++-вставки.
Ну да, только все эти средства тоже на С написаны
Как и ОС, под которой это делается. И все остальные нетривиальные программы

daru

интересно, на чём написан биллинг МТС-а, что он тормозной такой

на c++ и oracle sql.

Nugos

с++ позволяет писать тормозные программы

daru

Господа, а давайте C и C++ считать разными языками, а не одним.
Аргументы нужны?

daru

естественно позволяет Как и любой другой язык программирования из ныне здравствующих.

Dasar

можно сделать процессор, который будет, напрямую, выполнять sql-ные запросы.
Каким боком ты сюда C++ присобачишь? Хочешь сказать, что процессор будет на C++ написан?

Dasar

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

buba741

>можно сделать процессор, который будет, напрямую, выполнять sql-ные запросы.
>Каким боком ты сюда C++ присобачишь? Хочешь сказать, что процессор будет на C++ написан?
Но никому (пока?) не нужно.
У железячников своя специфика, VHDL или чо там щас модно.
Наезд насчёт "присобачишь" не понял, извини.

Nugos

>С таким же успехом можно сказать, что ОС и sql-базы написанны на asm-е, т.к. там очень много asm-вставок.
Основная масса кода все равно на с/с++...

Dasar

> >Программы, которые обрабатывают большие объемы данных пишут на Sql-е, а не на C++
> Это команды для них пишут на sql, а вот сами они как раз на С (С++ ?) написаны
Тоже самое можно сказать про любую программу и процессор.
Это только команды для них пишут на asm/C++/Java, а вот сами они (в данном случае процессоры) как раз на языке логический схем написаны.
Хочешь сказать, что из этого можно сделать вывод, что самым высокопроизводительным языком является язык логических схем?

Nugos

>Хочешь сказать, что из этого можно сделать вывод, что самым высокопроизводительным языком является язык логических схем?
Только речь шла о языках программирования, а язык логических схем вроде как не совсем к ним относится...

Dasar

> Для удобного написания оптимальных программ именно c++ лучше всего подходит, по крайней мере я больше не знаю языка, подходящего под эту задачу.
> Ну из основынх на сегодня, вроде бы со всеми знакомился, на некоторых работал проффесионально, разве что с Адой не разбирался.
> C++, Delphi, VB, C#, Java.
Это основые языки для написания программ десктопного класса.
Для написания программ из других классов используется еще масса языков.
И утверждение про C++ справедливо в первую очередь опять же только для десктопного класса программ.

Dasar

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

Nugos

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

Nugos

Тогда давай и электронные схемы или чертежи доменной печи языками программирования назовем...

Dasar

Это уже большие контроллеры.

Nugos

В смысле?

Dasar

Те контроллеры, для которых есть C-компиляторы - это уже большие контроллеры, вернее даже сказать - универсальные контроллеры.
Есть еще специализированные контроллеры (более мелкие) для которых C-компиляторов нет.

Nugos

Ну не знаю, восьмибитовый контроллер это большой? Ну так вот, под них в основом либо только ассемблер, либо еще в придачу с/с++.

Dasar

Язык программирование - это система команд для некоторого исполнителя.
В случае, компилирующих языков таким исполнителем является компилятор, который генерирует набор команд уже непосредственно понятных исполнителю.
Для языка sql, исполнителем является база данных.
Для Java - JVM.
Для asm-а - процессор.
> Тогда давай и электронные схемы или чертежи доменной печи языками программирования назовем...
Электронные схемы - язык? А исполнитель кто? электрический ток?
чертежи - это язык программирования, т.к. есть исполнитель, например, строитель, и есть система команд (условные обозначения и т.д.)

Dasar

да, большой, т.к. используется уже универсальный процессор.

Nugos

DSP тоже вроде как в основном на с/с++ программируются, они ж не универсальные вроде как...

krishtaf

бля да заебали вы своими говнокопалками работать.
хуливоины.

Dasar

Обращайся в администрацию (к модераторам)

krishtaf

надо нафиг этот раздел( программинг ) закрыть
а то порождает большое количество хуливоинов

Dasar

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

Nugos

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

ЯЗЫКИ ПРОГРАММИРОВАНИЯ, формальные языки для описания данных (информации) и алгоритма (программы) их обработки на ЭВМ. Основу языков программирования составляют алгоритмические языки. Первыми языками программирования были машинные языки, представляющие собой системы команд для конкретных ЭВМ. С развитием вычислительной техники появились более сложные языки программирования, ориентированные на решение различных задач: обработка экономической информации (кобол инженерные и научные расчеты (фортран обучение программированию (алгол-60, паскаль моделирование (слэнг, симула) и др. Расширение сферы использования ЭВМ привело к появлению многоцелевых (универсальных) языков программирования для записи алгоритмов решения задач практически из любой области (алгол-68, СИ, ПЛ/1 и др. а также языков программирования для персональных ЭВМ (бейсик, паскаль и др.). Для перевода (трансляции) описаний алгоритмов с одного языка программирования на другой, преимущественно на машинный язык, применяют специальные программы трансляторы.

www.km.ru

Dasar

> А для логических схем исполнитель дух всевышний?
Транзистор/микросхема

hoha32

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

ppplva

Видимо, плохо перегнал.

hoha32

Вроде неплохо. Не при помощи f2c. Простое переименование операторов и служебных слов
Просто там реально много считается.

Nugos

>пишется программа на этом языке
Не то что бы и пишется, сейчас CAD всякий используется, так что это писание вроде как и не писание, а drag & drop сплошной. Что ничем не отличает это "программирование" от любой другой инженерной деятельности...

oleg_n

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

Dasar

Во-первых: km.ru - это домашняя энциклопедия (а не научная поэтому у них более упрощенное определение
во-вторых: понятие "Эвм" можно трактовать очень широко.
Глоссарий.ру: словари по естественным наукам
Язык программирования - искусственный (формальный) язык, предназначенный для записи алгоритмов. Язык программирования задается своим описанием и реализуется в виде специальной программы: компилятора или интерпретатора.

Nugos

То же и для электронных схем...

Dasar

значит электронные схемы являются тоже языком программирования

ppplva

Тем не менее. Не может быть, чтобы фортран был в десятки раз быстрее С. Где-то что-то не учел, специфичное для С.

Nugos

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

hoha32

Чего там может быть такого "специфичного"? Прога линейная до безобразия, вот только циклы длинные (до миллиона итераций).
Моё предположение - хреново реализован класс комплексных чисел

Dasar

Программирование - это составление программы (системы команд для некоего исполнителя).
Когда ты для поисковой машины (yandex-а и т.д.) формируешь условие запроса - это тоже программирование (ты формируешь набор команд, а далее исполнитель(поисковая машина) - эту программу выполняет).

Dasar

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

ppplva

Запросто. Неправильные опции компилятора могут какой-то эффект дать.

hoha32

Опции - по умолчанию для MSVS6.0. Вроде там оптимизация на максимуме. Как и у Compaq Visual Fortran 6.5.

Nugos

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

1234554321

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

sergey_m

Высокопроизводительный телекомуникационный софт пишут на всякой экзотике
На C что ли?

Nugos

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

sergey_m

> Программы, которые обрабатывают большие объемы данных пишут на Sql-е, а не на C++
интересно, на чём написан биллинг МТС-а, что он тормозной такой
В качестве SQL там Oracle.

sergey_m

> Расчетные программы (в том числе и высокопроизводительные например, пишут почему-то на фортране.
Инерция мышления.

Отнюдь нет. У меня был сосед, который принимает участие в разработке Gaussian (химики в курсе). Он говорил, что fortran действительно самый подходящий язык.

sergey_m

>Программы, которые обрабатывают большие объемы данных пишут на Sql-е, а не на C++
Ты лучше подумай на чем сами базы данных пишут...

Ага, а в конце концов все можно свести к ассемблеру. И что?

Nugos

Я в начале еще об удобстве писал...

sergey_m

>Программы, которые обрабатывают большие объемы данных пишут на Sql-е, а не на C++
Это команды для них пишут на sql, а вот сами они как раз на С (С++ ?) написаны
Грамотно написанное хранилище данных содержит бизнес логику в хранимых процедурах и триггерах на PL/SQL (или аналоге). Для алгоритмического (или ОО) языка остается только UI.

Nugos

Значит так написал, что второй человек тебя недопонял..

buba741

Пойду посыпать голову пеплом

Dasar

>> Высокопроизводительный телекомуникационный софт пишут на всякой экзотике
> На C что ли?
например, тот же erlang

Dasar

> По моему уж слишком все размыто, тебе не кажется?
Да, размыто. И что в этом плохого?
ps
Самый высокоуровневым языком является "хочу программу, чтобы работала".
Сейчас компиляция такого языка занимает от полгода до 3 лет, и в качестве исполнителя требует команду программистов, и результат получается не совсем тот, что хотелось.
Но заметно, что с каждым годом (с каждым новым уровнем "машинных" языков) IT-отрасль все ближе и ближе подходит к этому языку.
Появились sql-базы (которым говорится, что есть такие данные, и что необходимо получить такую-то выборку а далее комп уже сам определяет, как эту выборку сделать.
Появились скрипты в большом кол-ве (perl, php, python и т.д. которые опять же просто определяют, что с данными надо сделать.
Появились языки Java и С#, в которых не надо разбираться с памятью напрямую, и которые сами проверяют разработчика, чтобы он не допустил ошибку по порче памяти.

Nugos

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

Dasar

Что нам дает такое разделение?
Какая мне разница, как программисту (как пользователю что там происходит внутри?
Я задал условие (входные данные) , задал то, что я хочу получить. Далее получил результат
Какая разница - как я задавал входные данные и как я задавал то, что хочу получить.
Главное, чтобы входные данные были корректными и задание того, что я хочу - было правильным (непротиворечивым, разрешимым и т.д.) - вот это и есть программирование.
Правильно описать, что у нас есть, и правильно описать то, что мы хотим получить - это и есть исскуство программирования. Все остальное - это некая рутинная работа, которая доступна любому рядовому кодировщику, любому рядовому (в будущем) компьютеру.
Если я неким формальным образом написал алгоритм, который может быть понятен другим человеком, но пока не может быть понятен компьютером, то почему - это не является языком программирования?
Взять тот же мат. аппарат - это язык программирования (причем даже полностью формальный т.к. мы можем формально задать условия задачи и формально с помощью мат. аппарата получить результат.
Но при этом компьютеры еще не умеют эффективно оперировать этим мат аппаратом.

Nugos

В общем все уперлось в терминологию, считаю, что спор исчерпан...

Marinavo_0507

> "Легкую" (на твой взгляд) задачу по обработке больших сложных данных научились решать только на sql-е (на языке реляционной алгебры).
Хм.
Только для некоторых видов "сложности".
Тождественность sql и реляционной алгебры мне тоже сомнительна.
Примеры:
- задачи, относящиеся обычно к области ИИ - причём даже модель данных там может быть реляционная
- поиск в слабоструктурированных данных - на обычных императивных языках вроде делают

bastii

дефолтный конструктор добавляется только, если нет других
иначе как ты сделаешь класс (для структуры тоже самое) с специальными конструктарами и без дефолтного
ОЧЕНЬ ВАЖНО иметь такую возможность

2mmail2

А почему на Fortran'e знаешь? Вообще, приходилось с ним сталкиваться? Знаешь для чего он разрабатывался изначально и на работу на каких системах расчитан?
Для обработки больших объемов данных - да SQL, но... Согласно ISO9072 от 92 года этот язык был признан языком общения с БД, для которых и разрабатывался. А в другом формате хранить большие объемы данных неудобно и накладно.
Что кроме С(С++) или Java можешь предложить для прикладного использования и того же SQL для обычного человека?

2mmail2

А как же ASM? Самый рульный язык. Быстрее и мощнее его ещё не придумали (исклычая машинный код, что в принципе не сильно отличается)

1234554321

"зачем читать, если можно писать?" (с)

oyuriyu

Инерция мышления.

Причём здесь мышление ? Просто привычка.

Marinavo_0507

> Причём здесь мышление ?
5 баллов. Да, мышление может не использоваться в этих случаях.

oyuriyu

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

oyuriyu

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

1234554321

в такой постановке задача легко решается таймаутами

freezer

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

oyuriyu

ms compiler что-ли ?

freezer

зависит от версии.
да в приниципе любой, если с дефолтовыми настройками. Вообще, компиляторы сильно разные бывают (в смысле производительности) и ведут себя по-разному.

Dasar

>>> Самым высокопроизводительным языком является маш. код. точка.
> Пиздёж, IMHO. Очень многие программы если написать на асме и на с,
то сишный вариант будет быстрее работать.
Посмотри на это по другому.:
1. Пишем прогу на C
2. Компилируем
3. Смотрим на получившийся asm.
4. Руками чистим отдельные места

Kira

с#, vb
Оставить комментарий
Имя или ник:
Комментарий: