Файл: Современные языки программирования (Понятие языков программирования и их свойства).pdf
Добавлен: 24.04.2023
Просмотров: 271
Скачиваний: 1
Введение
В мире высоких технологий любой бизнес связан с программированием. Это невероятно динамичная сфера, где спрос и тенденции меняются ежегодно.
На современном этапе развития компьютерных технологий невозможно представить какого–либо высококвалифицированного специалиста, не владеющего информационными технологиями. Поскольку деятельность любого субъекта в значительной степени зависит от степени владения информации, а также способности эффективно ее использовать. Для свободной ориентации в информационных потоках современный специалист любого профиля должен уметь получать, обрабатывать и использовать информацию, прежде всего, с помощью компьютеров, а также телекоммуникаций и других новейших средств связи, в том числе и уметь, обращаться с языками программирования.
Технологии не стоят на месте. Чтобы не отставать от конкурентов по бизнесу, необходимо четкое представление о том, какой язык программирования является сегодня наиболее популярным и востребованным. Правильно понимая тенденции программирования, можно направить свое развитие по верному пути.
Актуальность данной темы обусловлена тем, что прогресс компьютерных технологий определил процесс появления новых разнообразных знаковых систем для записи алгоритмов – языков программирования.
Целью курсовой работы является изучение классификации языков программирования и их развития.
Для достижения цели необходимо решение следующих частных задач:
- рассмотреть общее сведения и уровни языков программирования;
- описать и свойства языков программирования и критерии их оценки;
- рассмотреть историю развития языков программирования;
- выявить эволюцию точек зрения на роль языка в процессе программирования, а также принципы разработки языков программирования;
- провести обзор современных языков программирования.
Объектом исследования послужили языки программирования и их история развития.
В данной курсовой работе использовался научно-исследовательские методы.
Курсовая состоит из двух глав, каждая из которых решает определенные задачи. Первая глава дает определение языку программирования, выделяет его свойства и критерии. Во второй выделяются наиболее востребованные языки программирования и описываются перспективные.
Глава 1. Общие аспекты о языках программирования
1.1 Понятие языков программирования и их свойства
Характерной чертой информатики, возможно, объясняемой ее быстрым ростом и молодостью, является разнобой в терминологии и определениях даже дня таких важных понятий, как «язык программирования». Нижеследующие определения приведены не только для справки, но и дня того, чтобы показать ограничения, наложенные на соответствующие понятия.
Данные - суть представление информации в некотором формализованном виде, т. е, на некотором языке представления данных, создающем возможность ее передачи, храпения или обработки процессом.
Все дальнейшее изложение ведется в контексте автоматической обработки данных па автоматических цифровых вычислительных машинах.
Программа есть спецификация (данных) действий над данными (действия хотя бы частично упорядочены во времени), подлежащих исполнению дня достижения некоторого желаемого результата.
Программирование есть разработка программы, обычно состоящая в анализе задачи (разбиении задачи па части или модули, спецификации форматов входных и выходных данных или сопряжений), кодировании, отладке и документировании.
Язык программирования, есть формальный язык (семиотическая система) дня представления программ или их частей.
Как и всякая семиотическая система, каждый язык программирования характеризуется - семантикой, т. е, совокупностью изображаемых в нем объектов и операций над этими объектами; - синтаксисом, т. е, правилами изображения этих объектов и операций; - прагматикой, т. е, совокупностью отношений между данной семиотической системой и ее пользователями (в частности - с задачей, которую пользователь пытается решить, используя данный язык программирования; другой пример - стоимость такого решения),
Обычно такие языки включают не только конструкции дня представления алгоритма (собственно программ), по и некоторые средства, облегчающие разработку, отладку и эксплуатацию программы.
С другой стороны, каждый язык характеризуется областью приложений. По характеру использования программ можно выделить:
- системное программирование, связанное с разработкой программ, делающих использование вычислительных машин более удобным или вообще возможным;
- разработку прикладных программ для прочих областей регулярных приложений (научных или коммерческих расчетов, моделирования и т, п.), из которых часто выделяют составление разовых программ, представляющих решение частной задачи из некоторого класса регулярных приложений.
По используемым при этом методам программирования можно выделить области, где преобладают или даже нужны исключительно символьная обработка и работа со списками, либо алгоритмы численных методов.
Языки программирования, пригодные (практичные) для использования в обеих указанных областях, часто называют «универсальными».
Язык, удобный для программирования преимущественно в некоторой, более или менее широкой области приложения (за счет, например, наличия специальных конструкций, облегчающих составление программ в соответствующей области, или высокой эффективности таких программ) называется специализированным.
Стоит отметить, что особенности области приложений могут требовать включения в соответствующий специализированный язык всех возможностей «универсальных» языков; однако использование этих языков вне их области приложений часто оказывается нецелесообразным ввиду издержек, к которым ведет наличие ненужных данной задаче возможностей. Универсальный язык, не имеющий такой особенности, называется языком общего назначения.
Далее можно рассматреть почти исключительно языки высокого уровня, (процедурно- ориентированные языки). Это понятие относительно и неформально, оно предполагает, во всяком случае, что:
- для программирования на таком языке не требуется знания машинных команд;
- в принципе возможен перенос написанных на таком языке программ
с одной вычислительной системы на другую;
- используемая в таком языке нотация «человечнее» (ближе к языку формулирования задачи), чем допускаемая ассемблером.
Еще менее определено понятие языков очень высокого уровня, (другие, более или менее языков высокого уровня. Обычное определение состоит в том, что в таких языках программист может описанием желаемого результата (что ему нужно) в той или иной степени заменить алгоритм его получения (описание того, как этого результата достичь).
Наконец, хотелось бы обратить внимание на существенное различие между самим языком и его реализацией. Например, язык, как правило, недоопределяет особенности исполнения и способы реализации некоторых действий, имеющих (более или менее существенные) отличия на разных вычислительных системах.
В большинстве рассматриваемых нами языков трансляция программы может быть отделена от ее исполнения. Статическими в таком случае называют те аспекты, свойства, конструкции языка, полная отработка (установление) которых может быть произведена во время трансляции. Напротив, динамические или интерпретационные конструкции или свойства суть те, которые необходимо отрабатываются в ходе счета программы.
1.2 Роль языка в процессе программирования
Само понимание программирования на разных стадиях развития было различным. Расширялись области приложений, и менялась относительная роль разных стадий разработки программы.
В момент появления ориентированных на человека языков программирования (в начале 50-х годов) автоматическим программированием называли использование языка более или менее высокого уровня (вроде Фортрана) для написания программы - то, что в последствие стали называть автоматическим кодированием, по крайней мере по-английски.
И в общем, и по сей день общераспространенные языки программирования высокого уровня (это справедливо, пожалуй, даже для Кобола и бесспорно для всех языков общего назначения) ориентированы почти исключительно на эту часть общего процесса программирования. В целом, для раннего периода характерны языки, называемые «языками ассемблера (Фортран по существу также является языком ассемблера, правда, с некоторыми ограничениями).
Далее последовали наиболее плодовитые 1958-1959 гг., характеризующиеся в частности:
- появлением IAL, или Algol58;
- сообщением в 1959 г, о бэкусовом формализме для описания Алгола;
- образованием в мае 1959 г, комитета КОДАСИЛ, создавшего язык Кобол;
- началом работы над Лиспом (1959 г.).
В этот период в проектировании языков программирования сильно влияние чисто теоретических подходов (Алгол - алгоритмический язык, Лисп с его формульной структурой и ламбда-нсчисленпем, математическая ориентация информационной алгебры КО-ДАСИЛа).
Расширение области приложений вычислительного дела на коммерческие задачи привело к появлению Кобола, довольно специализированного языка, интересного наличием настоящего стандарта (позволяющего переносить программы, а порой также и данные, безо всяких изменений с одной вычислительной системы на другую); и по сей день немного найдется языков, обращающих такое внимание на спецификацию данных и обстановки.
Все еще в круге тех же идей конца 50-х - начала 60-х годов начал разрабатываться ПЛ/ 1 25 первый выживший язык общего назначения, являющийся синтезом идей, заложенный в структуре Алгола 60 и Кобола.
При этом разработчики языка руководствовались причудливой смесью «теоретических» и прагматических соображений. И хотя многие его черты (циклы, передача параметров, классы памяти) регулярнее, чем их аналоги в Алголе 60, в целом язык выглядит менее стройным из-за многочисленных исключений, и отчасти, из-за принципа «все проходит», который продолжает то, что было неудачно в Алголе 60, и затрудняет понимание и отладку программы. Однако в целом ПЛ1 остается наиболее мощным и (потенциально) наиболее эффективным из существующих языков общего назначения, весьма полезным в областях, требующих универсального языка. Не заменив Фортран или Кобол, Пл 1 занял прочное место в ряду «стандартных» языков программирования.
Продолжением той же линии явилась и разработка Алгола 68. Еще в большей степени, чем ПЛ/1, Алгол 68 «статизирует» анализ программы и выявление ошибок. Еще в большей степени, чем ПЛ/1, Алгол 68 выделяет наиболее эффективные и безопасные конструкции (ср. циклы, подвижные массивы). Цели разработки, указанные в сообщении, выглядят более убедительно, чем формулировка исходных установок ПЛ/1 33, и в целом цели эти достигнуты. Хотя Алгол 68 гораздо более простой язык, чем ПЛ/1, использованный в его официальном описании формализм (который многие считают большим шагом вперед в методах описания языка) в целом произвел еще более тяжелое впечатление, чем в свое время бэкусовы нормальные формы, и это впечатление не смогли сгладить даже появившиеся позднее более удобочитаемые пособия. Хотя в настоящее время имеется уже довольно много реализаций Алгола 68, до сих пор его теоретическое значение (как исходной точки многих работ по созданию новых языков) еще, пожалуй, превышает его практические применения.
Наиболее ярко тенденция к разумному ограничению предоставляемых пользователю возможностей (что позволяет улучшить диагностику и застраховать пользователя от некоторых семантических ошибок) проявилась в разработке еще одного языка общего назначения - языка Паскаль. Этот язык не содержит новых конструкций, которые давали бы пользователю «еще больший контроль над машиной», зато в нем впервые появились новые черты (идентификаторные типы - перечисления, метки выбора в выбирающих предложениях), делающие особенно легкими модификации написанных на этом языке программ и тем самым создающие предпосылки для использования языка не только при кодировании, но и при «программировании методом последовательного приближения».