Показать сообщение отдельно
Старый 21.03.2007, 23:33   #1 (permalink)
V_Bond
Member
 
Регистрация: 26.11.2006
Сообщений: 788
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 23
По умолчанию Современные языки программирования

СРАВНЕНИЕ МОЩНОСТИ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
приведены баллы, начисленные языкам по таким характеристикам как (НАБОР ОПЕРАТОРОВ ,КОНСТРУКТОР ТИПОВ , МЕХАНИЗМ ПРОЦЕДУР , СТРОГАЯ ТИПИЗАЦИЯ ,РАЗДЕЛЬНАЯ КОМПИЛЯЦИЯ ,АБСТРАКТНЫЕ ТИПЫ И ОБЪЕКТЫ ,. ПРОЦЕССЫ И ИСКЛЮЧЕНИЯ ,ПРОЧИЕ ВОЗМОЖНОСТИ )
C - 47 баллов
С++ -70 баллов
JAVA -62 балла
PASCAL-61 балл
MODULA-58 баллов
OBERON-59 баллов
ADA -84 балла
Первый сюрприз рейтинга – уверенное последнее место С. Главный инструмент профессионального программиста, вопреки распространенному заблуждению, достаточно “слабый” язык. Впрочем, последнее место С говорит и о том, что для создания программ любой степени сложности необязательно привлекать мощные языки программирования. С этой точки зрения борьба Вирта и его последователей за простоту языков программирования приобретает дополнительный аргумент “за”. Неудивительно, что все три его языка (PASCAL, MODULA и OBERON) показали примерно одинаковый средний результат. Это - свидетельство хорошей сбалансированности набора конструкций этих языков программирования.
В верхней части рейтинга оказались два языка-“тяжеловеса” – ADA и С++. При создании обеих языков программирования была предпринята попытка включить в них все наиболее значимые теоретические наработки. “Старичок” ADA победил, возможно, потому, что создавался “с чистого листа”, в то время как создателей С++ сдерживала необходимость сохранить совместимость с С.
Самый “молодой” из рассматриваемых языков – Java, получил пристойную среднюю оценку, примерно такую - же, как и у языков Вирта. Однако, учитывая ярко выраженную “объектную ориентированность” Java, следует признать, что как инструмент системного программиста этот язык недостаточно мощен.
( таблица взята из статьи strannik@mail.perm.ru )

СОВРЕМЕННЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ
C
Это многоцелевой ,лаконичный относительно низкого уровня, отвечает большинству задач системного программирования, С спроэктирован так что имеется очень близкое соответствие между его типами ,операциями и обьектами с которыми имеет дело машина : числами ,символами адресами. Одним из первоначальных предназначений С было применение вместо ассемблера в самых насущных задачах системного программирования.
С++.
Ключевым понятием С++ является класс, Класс – тип , определяемый пользователем. Классы обеспечивают скрытие данных, неявное преобразование типов, определенных пользователем, динамическое задание типа, контролируемое пользователем управление памятью и механизм перегрузки операций . При создании языка делались так же попытки модернизировать С, введя в его состав такие современные конструкции, как скалярный тип (enum), передача параметра по ссылке (&) или логический тип (bool). С++ является наиболее раздутым и не систематизированным языком….. который использует как принципы ООП так и адресную арифметику….
Java.
“Молодой” язык программирования и основной инструмент программирования для Internet. Создатели Java безжалостно удалили из С все несовременные конструкции, и в то же время сумели удержаться от излишнего “раздувания” языка включением в него новых теоретических разработок. В результате получился не очень объемный, но стройный, “крепко сбитый” язык программирования с ярко выраженной идеологией. К сожалению, ориентация на Internet не дает возможности использовать Java как язык системного программирования, однако это хороший пример реформы С. Клоном С он является только внешне. Идеологически это хороший пример европейской языковой школы (к которой можно отнести клоны PASCAL и ADA).
PASCAL
Один из самых распространенных языков программирования поддерживающий структурное и модульное программирование. Он берет свои корни из АЛГОЛА-60,и был создан Швейцарцем Н.Виртом. Особо следует отметить надежность программ на Паскале достигаемой за счет описания переменных и соответствующих типов. Читабельность языка помогает нахождению ошибок в коде……
MODULA-2.
Наиболее известный клон PASCAL и любимый язык автора этой статьи. Классический набор операторов и конструктор типов. Хорошо разработанные механизмы раздельной компиляции (конкуренцию MODULA в этом классе может составить только ADA). Маленький и удобный язык с точки зрения разработчика компилятора (как и все языки Вирта, видимо, сказывается то обстоятельство, что Вирт сам пишет компиляторы для своих языков). Недостатком языка можно считать полное отсутствие механизмов ООП.
OBERON-2.
Последний из языков Вирта и клонов PASCAL. OBERON позиционировался как MODULA + ООП, однако при создании языка Вирт выбросил из MODULA много приятных возможностей (часть из которых была добавлена при создании OBERON-2, считающегося современным вариантом языка).
ADA-95.
Самый мощный из используемых сегодня языков программирования, ADA вызывает противоречивые чувства. С что создание компиляторов для него стало крайне трудоемким и дорогостоящим делом. Неудачей можно считать и попытку реализации ООП в ADA. Писать ООП - программы на ADA-95 конечно, можно, но крайне неудобно. В каком-то смысле этот вывод можно перенести и на весь язык в целом. Единственным несомненным плюсом ADA можно считать наиболее полную и подробную стандартизацию, вследствие чего переносимость программ на ADA наиболее лучшая по сравнению с другими языками программирования.
FORTRAN
Fortran этот традиционно сильный с математической точки зрения язык по- моему незаслуженно забыт…..
С появлением Fortran 90 он приобрел ряд возможностей которых ему не хватало это изменения в
1.структуры (производные типы)
2. Указатели позволяют программе вызвать более одной области памяти с одним именем По сравнению с указателями языка С указатели в Fortran 90 более ограничены, и поэтому легче для отладки и оптимизации
3. Вид семейства
Тип семейства дает возможность пользователю запросить, какой встроеннный тип использован базовым для точности и диапазона значений. Это средства среду вычислений. Программисты, которые адресуют свои программы разным машинам, должны иметь дело с различным числом точных цифр. Используя семейство (kind), программист может специфицировать требуемую числовую точность.
4. Объявления (декларации, спецификации)
Объекты данных могут иметь комбинацию 12 различных атрибутов, таких как POINTER, SAVE, и т.д. Fortran 90 вводит "объектно-ориентированные " объявления, в которых объекты с одинаковыми комбинациями атрибутов могли быть декларированы со всеми их атрибутами в одном операторе.
5. Конструкторы
Массив и объекты производных типов данных могут быть инициализированы в операторе объявления. Конструктор может быть использован как константа там, где ожидается массив или производный тип.
6.Добавлены новые конструкции позаимствованные у Pascal
7. Изменены выражения для массивов
Что делает этот казалось бы давно мертвый язык -живее всех живых…… и если ваша деятельность сопряжена с математикой……….рекомендую проще этого не сделать ни где.
V_Bond вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070