2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу 1, 2, 3, 4, 5, 6  След.
 
 Стандарт C++
Сообщение20.02.2006, 09:12 
Заслуженный участник
Аватара пользователя


12/10/05
478
Казань
Интересно, существует ли на сегодняшний день законченный стандарт C++? Вот ссылка на последний черновик стандарта С++ (за октябрь 2005).

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

Законченный стандарт Ады-95 занимает в 2 раза меньше страниц, чем упомянутый черновик стандарта С++ :). Причем, когда я начал ее потихоньку ковырять, выяснилось, что стандарт Ада-83 поддерживал (уже в 83 г!) перегрузку операторов, шаблонные пакеты (там они назыв-ся generic - "настраиваемые") и приватные типы (в некоторой степени - аналог объектов).

 Профиль  
                  
 
 Re: Стандарт C++
Сообщение20.02.2006, 15:28 
Заслуженный участник
Аватара пользователя


20/07/05
695
Ярославль
Sanyok писал(а):
Я все больше думаю том, что неплохо бы Аду освоить. :)


Я тоже, когда во всех этих тысячах языков программировния пытался разобраться, решил
освоить Common Lisp. Это же самый крутой язык программирования - язык хакеров, язык для избранных.
А ещё есть Scheme, Smalltalk, и вот ещё, недавно узнал, Ocaml какой-то. Кошмар! :shock: :)

 Профиль  
                  
 
 
Сообщение20.02.2006, 16:44 
Заслуженный участник
Аватара пользователя


12/10/05
478
Казань
Ну, Ада не крутой и не для избранных (в смысле сложности) :) Тогда уж скорей С++ для избранных :) .

 Профиль  
                  
 
 Re: Стандарт C++
Сообщение20.02.2006, 17:44 
Заслуженный участник


31/12/05
1480
Sanyok писал(а):
Интересно, существует ли на сегодняшний день законченный стандарт C++?

Даже два - ISO/IEC 14882:1998 (первоначальный) и ISO/IEC 14882:2003 (слегка обновленный, так называемый TC1). ISO раздает тексты стандартов только за деньги, поэтому бесплатно их надо еще поискать. По крайней мере первый из них найти достаточно легко.

 Профиль  
                  
 
 
Сообщение20.02.2006, 18:50 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:
А где компиляторы Ады брать? Для x86 всегда есть GCC. А для чего нибудь более экзотического? Компиляторы для встроенных систем защищают куда круче, чем MS Office. В целом, по сравнению с ними Visual Studio -- дешевая.

 Профиль  
                  
 
 
Сообщение20.02.2006, 19:17 
Заслуженный участник
Аватара пользователя


12/10/05
478
Казань
:oops: Ну, для Atmel они вроде как есть (а точнее - это тот же GCC)... А для всего остального... Это конечно, хороший вопрос... :) Ручками, товарисчи, ручками... :) Вы, Незванный гость, кажись ковыряли GCC? Я туда пока не лазил, но я вечно сую нос куда не след.. :) Мне интересно как он построен. Я где-то читал про такую модель компилятора:
-сначала из некоторого языка (Си, Си++, Паскаль, и т.п.) программа преобразуется в некий байт-код, "внутренний" код компилятора.
-потом это все преобразуется в язык ассемблера конкретной аппаратной платформы
-потом, после оптимизации программы на ассемблере она уже переводится в машинные коды.

Таким образом, на первый взгляд верхний уровень может быть для всех платформ общим (или с небольшми изменениями), нижний уровень поставляется производителем железки, в которую мы хотим эту программу запульнуть, остается средний. Не так уж много, причем этот "средний" уровень можно взять из аналогичной реализации компилятора другого языка для этой железки. К примеру, у нас уже есть для нашей микрухи GNU C , и GNAT (но последний уже не для нашей микрухи). Вот, если б семейство компиляторов GCC построено примерно как я описал, новый компилер сварганить задача в принципе, решабельная... ИМХО, конечно (поскольку я многого не знаю и реальность скорей всего не так радужна)

 Профиль  
                  
 
 
Сообщение20.02.2006, 19:25 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:
Sanyok писал(а):
Таким образом, на первый взгляд верхний уровень может быть для всех платформ общим (или с небольшми изменениями), нижний уровень поставляется производителем железки, в которую мы хотим эту программу запульнуть, остается средний. Не так уж много, причем этот "средний" уровень можно взять из аналогичной реализации компилятора другого языка для этой железки. К примеру, у нас уже есть для нашей микрухи GNU C , и GNAT (но последний уже не для нашей микрухи).

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

Sanyok писал(а):
Вот, если б семейство компиляторов GCC построено примерно как я описал, новый компилер сварганить задача в принципе, решабельная... ИМХО, конечно (поскольку я многого не знаю и реальность скорей всего не так радужна)

Написать parser, IMHO -- 10% работы (а может, и меньше). Реальная проблема -- написать кодогенератор и оптимизатор, а особенно, хорошие кодогенератор и оптимизатор. Вот на это и уходят годы. По крайней мере, я охотно сделаю parser для Ады (за пару-тройку недель), если кто-то другой будет делать все остальное...

 Профиль  
                  
 
 
Сообщение20.02.2006, 20:05 
Заслуженный участник
Аватара пользователя


12/10/05
478
Казань
незванный гость писал(а):
:evil:
Sanyok писал(а):
Таким образом, на первый взгляд верхний уровень может быть для всех платформ общим (или с небольшми изменениями), нижний уровень поставляется производителем железки, в которую мы хотим эту программу запульнуть, остается средний. Не так уж много, причем этот "средний" уровень можно взять из аналогичной реализации компилятора другого языка для этой железки. К примеру, у нас уже есть для нашей микрухи GNU C , и GNAT (но последний уже не для нашей микрухи).

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


Чего они не делают? По крайней мере, в этом компиляторе Си от Renesas (для микроконтроллеров серии M16С) программка assembler optimiser идет отдельной строкой. Мне кажется - если у тебя есть assembler optimiser (который оптимизирует программу на асме), сам ассемблер (который в машинные коды переводит), остается лишь преобразовать выходной код парсера в команды проца (пусть даже совсем не оптимальным образом). Остальное - работа фирменного assemler optimiser-a и ассемблера. Конечно, этот assemler optimiser тож не бесплатно - а точнее, надо будет все скопом покупать, вместе с компилятором Си. Другое дела - а стоит ли все это использовать только в таком виде, в каком оно продается? Мож, туда еще что-то можно пришпандорить (парсер Ады, к примеру) и будет гораздо лучше?

 Профиль  
                  
 
 
Сообщение21.02.2006, 05:55 
Заслуженный участник


15/05/05
3445
USA
Стандартный Open Source компилятор для ADA - это GNAT.
Разработан в Нью-Йоркском университете, реализует стандарт ADA95 (ООП версия). компилирует Аду в С++ для GCC. Последняя свободная версия - 3.15p. Далее развивается как коммерческий продукт.
Ссылки:
http://rochebruneadsl.free.fr/stephane/gnat/3.15p/
ftp://ftp.cs.kuleuven.be/pub/Ada-Belgium/mirrors/gnu-ada/3.15p/

Насчет его перспектив: рекомендую заглянуть в группу comp.lang.ada, например, через Гугл:
http://groups.google.com/groups?hl=ru&lr=&ie=UTF-8&group=comp.lang.ada
Зрелище (точнее читалище) грустное. Основное: стремительная потеря популярности. Даже в авионике и прочих военных разработках в США переходят на C++.

Да, есть еще Shark - подмножество Ada для встроенных систем.

Я лично на Ada никогда не работал. И пока не собираюсь

 Профиль  
                  
 
 
Сообщение21.02.2006, 09:28 
Заслуженный участник
Аватара пользователя


12/10/05
478
Казань
Ну, на mingw.org версии все-же продолжают обновлятся:
http://www.mingw.org/download.shtml#hdr2
ada по-прежнему входит в пакет компиляторов gcc. Я тоже Ada никогда не использовал, но хочу попробовать.

 Профиль  
                  
 
 Re: Стандарт C++
Сообщение21.02.2006, 15:16 


29/05/05
143
Борис Лейкин писал(а):
Common Lisp. [...]
А ещё есть Scheme [...]


О! Так я и книжку недавно встретил:
Структура и интерпретация компьютерных программ (Харольд Абельсон и др.)

 Профиль  
                  
 
 
Сообщение21.02.2006, 16:22 
Заслуженный участник


15/05/05
3445
USA
Sanyok писал(а):
Ну, на mingw.org версии все-же продолжают обновлятся:
http://www.mingw.org/download.shtml#hdr2
ada по-прежнему входит в пакет компиляторов gcc. Я тоже Ada никогда не использовал, но хочу попробовать.

Спасибо за ссылку. Я не уверен, что это обновленный компилятор. В сырцах архива от 17.1.06 ada-файлы - от 2004-го и старше. Я потом сравню с GNAT. Хоть и не пользуюсь, но в архиве то он у меня есть, любопытно ведь :) .

 Профиль  
                  
 
 Re: Стандарт C++
Сообщение14.03.2006, 01:29 
Аватара пользователя


13/03/06
36
Урал
Борис Лейкин писал(а):
Sanyok писал(а):
Я все больше думаю том, что неплохо бы Аду освоить. :)


Я тоже, когда во всех этих тысячах языков программировния пытался разобраться, решил
освоить Common Lisp. Это же самый крутой язык программирования - язык хакеров, язык для избранных.
А ещё есть Scheme, Smalltalk, и вот ещё, недавно узнал, Ocaml какой-то. Кошмар! :shock: :)


Я извиняюсь, это ради самоудовлетворения - такая экзотика??? - На практике, для реальных задач это пыталось применяться...? есть стандартная цепочка: asm->{C/C++,Pascal/ObPascal} для Windows, ну и это-же +скриптовые для UNIX/Linux. :!: Хотя, Н.Вирт уж очень oberon продвигает, хотя на вопрос почему его Pascal 64 бита не держит - так и не ответил (зато, порекамендовал black oberon - мол там этой проблеммы нет). Вот и приходиться крутится в Pascale, м/у asm и Pascal. Хотя, предпочитаю С/С++ - именно так, в связке, ООП - ДА! но cin и cout - НЕТ! Ведь никто не спорит, что Perl - круто... но все с успехом продолжают на PHP сидеть. А по поводу Smalltalk - то, что сказать, зачем-то люди идут в перед... Стоит ли использовать то, что мало применимо в жизни ( я не в смысле бедности возможности, а в силу малоиспользования). :lol:
:arrow: Думаю, надо то использовать, что наиболие подходит для конкретной задачи, в принципе, так языки и создаются, а ADA - ёще на заре этого всего, уже паралельность держала (позволяла). Вот только, как-то в России это чудо не очень распрастранено. А жаль, ладно хоть барсик медленно вымирает - перераждается в нормальную среду...

 Профиль  
                  
 
 Re: Стандарт C++
Сообщение14.03.2006, 08:23 
Заслуженный участник
Аватара пользователя


12/10/05
478
Казань
ПВА писал(а):
Думаю, надо то использовать, что наиболие подходит для конкретной задачи, в принципе, так языки и создаются, а ADA - ёще на заре этого всего, уже паралельность держала (позволяла). Вот только, как-то в России это чудо не очень распрастранено. А жаль, ладно хоть барсик медленно вымирает - перераждается в нормальную среду...


Я ее сейчас потихоньку ковырять начал. Чем дальше в лес, тем больше нравится. :) В ADA-83 есть все, из-за чего я в свое время с Паскаля перешел на Си, и даже гораздо больше. В ADA-83 есть почти все, что есть в C++, за исключением наследования и виртуальных функций. Есть типы, поведение которых подобно поведению классов (только это на первый взгляд неочевидно) и многое другое.

Единственный минус (но который перевешивает все плюсы) - это практически полное отсутствие библиотек. Что бы написать нормальную windows-программу, надо потратить кучу времени и сил...

 Профиль  
                  
 
 Re: Стандарт C++
Сообщение14.03.2006, 19:33 
Заслуженный участник
Аватара пользователя


20/07/05
695
Ярославль
dikun писал(а):


А вот это вы видели?
(И почему интернет-траффик платный?, сидел бы иначе целыми днями и качал,
вот только для чего... вопрос?)

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 87 ]  На страницу 1, 2, 3, 4, 5, 6  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group