2014 dxdy logo

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

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




На страницу 1, 2, 3, 4, 5, 6  След.
 
 Стандарт C++
Сообщение20.02.2006, 09:12 
Аватара пользователя
Интересно, существует ли на сегодняшний день законченный стандарт C++? Вот ссылка на последний черновик стандарта С++ (за октябрь 2005).

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

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

 
 
 
 Re: Стандарт C++
Сообщение20.02.2006, 15:28 
Аватара пользователя
Sanyok писал(а):
Я все больше думаю том, что неплохо бы Аду освоить. :)


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

 
 
 
 
Сообщение20.02.2006, 16:44 
Аватара пользователя
Ну, Ада не крутой и не для избранных (в смысле сложности) :) Тогда уж скорей С++ для избранных :) .

 
 
 
 Re: Стандарт C++
Сообщение20.02.2006, 17:44 
Sanyok писал(а):
Интересно, существует ли на сегодняшний день законченный стандарт C++?

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

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

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

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

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

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

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

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

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

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


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

 
 
 
 
Сообщение21.02.2006, 05:55 
Стандартный 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 
Аватара пользователя
Ну, на mingw.org версии все-же продолжают обновлятся:
http://www.mingw.org/download.shtml#hdr2
ada по-прежнему входит в пакет компиляторов gcc. Я тоже Ada никогда не использовал, но хочу попробовать.

 
 
 
 Re: Стандарт C++
Сообщение21.02.2006, 15:16 
Борис Лейкин писал(а):
Common Lisp. [...]
А ещё есть Scheme [...]


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

 
 
 
 
Сообщение21.02.2006, 16:22 
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 
Аватара пользователя
Борис Лейкин писал(а):
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 
Аватара пользователя
ПВА писал(а):
Думаю, надо то использовать, что наиболие подходит для конкретной задачи, в принципе, так языки и создаются, а ADA - ёще на заре этого всего, уже паралельность держала (позволяла). Вот только, как-то в России это чудо не очень распрастранено. А жаль, ладно хоть барсик медленно вымирает - перераждается в нормальную среду...


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

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

 
 
 
 Re: Стандарт C++
Сообщение14.03.2006, 19:33 
Аватара пользователя
dikun писал(а):


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

 
 
 [ Сообщений: 87 ]  На страницу 1, 2, 3, 4, 5, 6  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group