Внимание! Studlandia не продает дипломы, аттестаты и иные документы об образовании. Наши специалисты оказывают услуги консультирования и помощи в написании студенческих работ: в сборе информации, ее обработке, структурировании и оформления работы в соответствии с ГОСТом. Все услуги на сайте предоставляются исключительно в рамках законодательства РФ.
Нужна индивидуальная работа?
Подберем литературу
Поможем справиться с любым заданием
Подготовим презентацию и речь
Оформим готовую работу
Узнать стоимость своей работы
Дарим 200 руб.
на первый
заказ

Дипломная работа на тему: Исторический обзор, классификация и характеристики языков программирования

Купить за 600 руб.
Страниц
39
Размер файла
461.21 КБ
Просмотров
26
Покупок
0
Бурное развитие информационных технологий повлекло за собой создание множества искусственных языков, ориентированных решение проблемы общения человека с компьютером. Любой обзор по языкам

Введение

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

Один из подходов, помогающий провести обзор языков программирования, - подход исторический. Действительно, на первый взгляд все выглядит очень просто. Сначала было программирование в машинных кодах, когда программист являлся единственным посредником между остальными смертными и Машиной - гигантским "ламповым монстром", занимающим если не целое здание, то почти целый этаж. Затем появились мнемонические представления машинного кода, ассемблер и, наконец, макроассемблер. В конце 50-х возникли языки формульного программирования, из которых наиболее замечательным был Фортран, затем (в 60-х) центр тяжести стал понемногу смещаться к нечисленным методам - появился АЛГОЛ. Еще немного, и к 70-м годам произошла структурная революция - АЛГОЛ-W и, наконец, Паскаль. Далее настала очередь "модульного" программирования - Модула и Модула-2. Приблизительно в это же время рождается знаменитый язык Си, идет новая революция логического программирования - в моде ПРОЛОГ и экспертные системы. Пентагон проводит свой знаменитый конкурс, на котором побеждает Ада, а Япония заявляет о проекте машин пятого поколения, основанных на SmallTalk. В результате происходит объектно-ориентированная революция, появляются С++, Оберон, Eiffel и Модула-3.

Общие тенденции развития языков программирования при историческом подходе проследить вполне возможно, однако изложение получается сумбурным и путаным. Удивляться тут нечему - ладно если бы произошла, например, структурная революция: программистская общественность присягнула на верность программированию без "goto" и прощай Фортран! Но нет, и Фортран сейчас "в ходу", а если вспомнить об его преуспевших детях Basic и Visual Basic, то придется признать, что "некрологи" Фортрана более чем двадцатилетней давности выглядят в наше время как забавный исторический курьез. Хотя верно и то, что тех версий языка Фортран, что были четверть века назад, уже не осталось, да и машин, на которых с ними работали, сейчас найдешь разве что в музее. Язык Паскаль также, по сравнению со многими другими языками, сейчас уже не молод, но это не мешает ему оставаться одним из наиболее популярных языков и в наши дни. А Кобол? У него еще более преклонный возраст, а если посмотреть по конференциям на Internet - окажется, что очень много работ и сейчас проводится на Коболе.

Другой возможный классификационный критерий языков программирования - это революционные идеи программирования, воплотившиеся в соответствующих решениях: структурное программирование, модульное программирование, объектно-ориентированное программирование. Однако и тут четкой классификации не получится. К примеру, Паскаль возник как "продукт" структурной революции, удачно впитал в себя идеи революции "модульной", и сегодня существует практически на всех компьютерных платформах в объектно-ориентированных воплощениях. Другой пример: приверженцы языка С++, как правило, самым важным его достоинством называют объектно-ориентированное программирование. Однако было бы неверно считать, что С++ стал популярным только благодаря объектам - как и объектно-ориентированный Паскаль, С++ является языком гибридным. Применение объектно-ориентированной парадигмы при работе на нем совсем не обязательно, и многие программисты в практической работе этими возможностями как в С++, так и в объектно-ориентированном Паскале не пользуются. Точно так же, работая с современными компиляторами языка Паскаль, например с широко известными Borland Pascal/Turbo Pascal (Borland) 7.0 для IBM РС или Think Pascal (Symantec) для компьютеров Macintosh, можно в явном виде не пользоваться модульными возможностями, оформляя исходный код программы почти в полном соответствии со стандартным Паскалем. Ошибочный подход, скажет иной поклонник прогресса. Однако исходный код, соответствующий стандарту, будет обладать высокой переносимостью на разные платформы. Могут быть и иные резоны как для стандартных, так и для гибридных подходов. Видимо, поэтому разработчики объектно-ориентированного языка Модула-3 сделали принцип "гибридности" одним из основных в своем языке. С другой стороны, существует большая группа чистых объектно-ориентированных языков, где объектно-ориентированная парадигма является обязательной. Примером такого языка может служить Dee .

Казалось бы, еще один удобный классификационный признак - популярность языка: чем язык популярней - тем он лучше, так может, недолго думая, и разбить все языки на "плохие" и "хорошие"? Однако хорошо известно, что коммерческий успех того или иного продукта не является объективной оценкой качества. Мода - преходяща, особенно если ее приход стимулируется громкой рекламой и значительными капиталовложениями. И чем популярней язык, тем больше споров вокруг него, чем больше у него сторонников - тем больше и противников. Так, в самое ближайшее время много споров можно будет услышать об языке Java. Не вызовет ли приверженность этого языка принципам объектно-ориентированного программирования оттока его сторонников - и тех, кто не стремится использовать объектно-ориентированное программирование на практике, и тех, кто считает, что в ряде современных языков (например в С++ или в Eiffel) эти принципы реализованы полнее?

И, наконец, еще один критерий - уровень языка. Традиционно к языкам низкого уровня относят ассемблеры, а к языкам высокого уровня все остальные универсальные языки программирования, впрочем, для таких языков, как Форт (FORTH), Си и т. д., иногда выделяется некий "промежуточный" уровень. Помимо этого, делались неоднократные попытки выделить какой-либо язык или группу языков на "сверхвысокий" уровень, например для макросредств электронных таблиц. Не нужно вдаваться в детали, чтобы почувствовать всю условность и этой классификации. Тем более, если учесть, что большинство реализаций современных языков программирования высокого уровня имеют богатые низкоуровневые возможности. Скажем, Inline-директива, позволяющая записывать в исходном тексте машинные коды, или встроенный ассемблер, как, например, это сделано в Borland Pascal. Отметим, что, как правило, встроенный ассемблер гораздо удобнее - запись в кодах на его фоне выглядит анахронизмом. При необходимости программирования какого-либо фрагмента программы на низком уровне можно применять и обычный "не встроенный" ассемблер. В общем случае в современных языковых средах вполне возможно программировать разные модули одной и той же программы на разных языках, например и на нескольких языках высокого уровня. Отметим, однако, что на практике этого лучше не делать без особых причин.

Весьма проблематична классификация языков и по названию. Например, Н. Вирт заявляет, что недостатки концепций языка Паскаль преодолеваются в языках Модула-2 и Оберон: "Назови я эти языки Паскаль-2 и Паскаль-3... их эволюционная линия была бы очевидна". Напрашивается вопрос - что есть язык, а что есть диалект языка: например, стандартный Паскаль, расширенный Паскаль (Extended Pascal) и Turbo Pascal - три разных языка или три диалекта Паскаля?

Итак, подведем итог: несмотря на неполноту традиционных классификаций, они позволяют выявить ряд важнейших характеристик языков программирования. То же самое можно сказать о проблеме сравнения языков. Периодически такие сравнения появляются как в компьютерных журналах, так и в сетевых конференциях. Естественно, главная цель здесь недостижима, и большинство участников дискуссии обычно остается при своем мнении: одним язык Y нравится - другие его терпеть не могут. Однако, при малоинтересных общих выводах, сравнительные оценки деталей двух языков содержат иногда много оригинальных, интересных и плодотворных подходов.

Оглавление

- Введение

- Понятия зыка программирования

- Машинный код

- Алгоритм и программа

- Что такое язык программирования

- Уровни языков программирования

- Компилируемые и интерпретируемые языки

- Классификация языков программирования

- Исторический обзор языков программирования

- Характеристики языков программирования

- Элементы объектной модели

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

- Заключение

- Литература

Заключение

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

Целью данного обзора была попытка дать представление о всем многообразии существующих языков программирования. Среди программистов часто бытует мнение о всеобщей применимости того или иного языка (С, С++, Pascal и т.п.). Это мнение возникает по нескольким причинам: недостаток информации, привычка, инертность мышления. Настоящий профессионал должен постоянно стремиться повышать свои профессиональную квалификацию. А для этого нужно не бояться экспериментировать. Разумеется, прежде чем приниматься использовать новый язык, нужно внимательно изучить все его особенности, включая наличии эффективной реализации, возможности взаимодействия с существующими модулями и т.п., и только после этого принимать решение. Конечно, всегда есть риск пойти не тем путем, но не ошибается лишь тот, кто ничего не делает.

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

Этот обзор языков программирования задумывался как ответ тем, кто кричит <язык X MUST DIE>. Надеюсь, что ответ получился достаточно адекватным и убедительным.

Список литературы

1.Информатика под редакцией Е.К. Хеннера, М.,Академия,2004г.

2.Информатика.Базовый курс под ред. С. В. Симоновича, С.-П "Питер" 2005г.

3.Языки программирования. Обзор-ликбез. Хакер №4,с.36-40.

4.Р.Богатырев, Природа и эволюция сценарных языков, Мир ПК, №11,2001

5.Г.Буг, Объектно-ориентированный анализ и проектирование

Как купить готовую работу?
Авторизоваться
или зарегистрироваться
в сервисе
Оплатить работу
удобным
способом
После оплаты
вы получите ссылку
на скачивание
Страниц
39
Размер файла
461.21 КБ
Просмотров
444
Покупок
0
Исторический обзор, классификация и характеристики языков программирования
Купить за 600 руб.
Похожие работы
Сумма к оплате
500 руб.
Купить
Заказать
индивидуальную работу
Гарантия 21 день
Работа 100% по ваши требованиям
от 1 000 руб.
Заказать
Прочие работы по предмету
Сумма к оплате
500 руб.
Купить
Заказать
индивидуальную работу
Гарантия 21 день
Работа 100% по ваши требованиям
от 1 000 руб.
Заказать
103 972 студента обратились
к нам за прошлый год
2023 оценок
среднее 4.9 из 5
Дмитрий Я довольна работой. Всё выполнено в срок. Спасибо большое
Александр Спасибо большое за работу! Сделано все качественно, быстро и на высшем уровне. Рекомендую!
Александр Спасибо вам большое за проделанную работу! Александр, человек своего дела. Выполнил все поставленные задачи в лучшем...
Геннадий Всё отлично, большое спасибо автору!
Дмитрий Решение точное , присылает быстро!
Александр Александр просто мой спаситель! Несмотря на маленький срок, он справился вовремя и качественно! Я измучалась с...
Наталья Всë супер огромное спасибо
Дмитрий Быстро, качественно и в срок.
Анастасия Благодарю за помощь!
Рита Рекомендую автора, отличная работа!