Файл: Современные языки программирования (Проблематика современных языков программирования).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 12.03.2024

Просмотров: 24

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Содержание:

ВВЕДЕНИЕ

Язык программирования – формальный язык, предназначенный для записи компьютерных программ, которые представляют собой набор правил, позволяющих компьютеру выполнить тот или иной вычислительный процесс. Язык программирования определяет набор логических, синтаксических и семантических правил. Язык программирования, можно назвать посредником между человеческой речью и языком понятным ЭВМ, т.е. двоичным кодом.

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

Языки программирования можно классифицировать по разным признакам. Одним из таких признаков является, к чему ближе находится язык программирования, к машинному коду или к человеческой речи. Если язык находиться ближе к машинному коду, то такой язык принято называть - «низкоуровневый язык программирования». К низкоуровневым языкам программирования относятся языки семейства ассемблер. И наоборот, если язык находиться ближе к человеческой речи, то его называют - «высокоуровневый язык программирования». Примеры высокоуровневых языков программирования: C++, C#, Java, JavaScript, Паскаль.

Цель курсовой работы - исследовать историю появления и развития языков программирования, определить нынешнее состояние языков программирования, проанализировать тенденции их развития в будущем.

Задача курсовой работы – познакомиться с современными языками программирования, выявить основные признаки классификации современных языков программирования, определить области применения современных языков программирования.


1. ИСТОРИЯ РАЗВИТИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

В этой главе будет рассмотрено понятие код, появление первых языков программирования и история их развития

1.2 Первые языки программирования

Вообще, язык программирования — это некий код. Кодом можно назвать любой возможный способ передачи информации. Все средства коммуникации в той или иной степени можно назвать кодом. Например: азбука Морзе – это способ передачи информации в виде сочетания символов «-» и «.», если передача происходит в печатном виде, а если в звуковом, то сочетание длинных и коротких звуковых сигналов. Также к понятию код можно отнести азбуку Брайля - специальная азбука для слепых, в которой буквы, группы букв и целые слова закодированы наборами выпуклых точек. Даже привычные для нас буквы и сочетание букв, которое в конечном итоге образует слова, а из слов составляются фразы, тоже является кодом. Так как, обычная человеческая речь — это способ передачи информации.

Языки программирования, являются средством коммуникации человека с ЭВМ. Человек посылает в закодированном виде команды вычислительной машине, используя для этого язык программирования. При этом можно сказать, что первые языки программирования возникли еще до появления современных вычислительных машин. Первые, условно программируемые устройства появились в 19-м веке. К таким устройствам можно отнести Жаккардовый ткацкий станок, появившийся в 1804 году, для управления которым использовались наборы инструкций, нанесенные на картонные карты. Также можно назвать программируемым устройством музыкальную шкатулку, в которой использовался металлический цилиндр для извлечения звука, мелодия была запрограммирована на этом цилиндре.

Первым «языком программирования» для ЭВМ, принято считать язык леди Ады Августы, которая в 1842 году написала программу для вычисления чисел Бернулли для аналитической машины Чарльза Беббиджа. Аналитическая машина Беббиджа (Рисунок 1) является прообразом современных ЭВМ, имела схожую архитектуру с ними, хотя так и не была построена при жизни Ады. Но все-таки, программа Адой была написана, в связи с этим её принято считать первым программистом, а программа была написана на разработанном ею первом языке программирования.

Рисунок 1. Аналитическая машина Беббиджа.


1.2 Языки программирования для ЭВМ

Дальше мы будем говорить о «языках программирования» исключительно как о средстве написания программ для ЭВМ, поскольку они таковыми и являются.

В 1930 – 1940 годах Алонзо Чёрч, Алан Метисон Тьюринг, Андрей Андреевич Марков разработали математические абстракции для формализации алгоритмов.

В это же время в 1940-х годах появились первые электрические, цифровые компьютеры.

В 1943-1945 Конрадом Цузе был разработан, а 1948 опубликован первый в мире высокоуровневый язык программирования Plankalkül (Планкалкюль), что переводиться как планируемые вычисления. Планкалкюль поддерживал операции назначения, вызов подпрограмм, условные операторы, итерационные циклы, арифметику с плавающей запятой, массивы, иерархические структуры данных, утверждения, обработку исключений и многое другое. В данный момент, современные языки программирования поддерживают все эти средства. Цузе написал документацию для Планкалкюль, где описал возможности языка и его применение для сортировки чисел и арифметических вычислений. Кроме того, Цузе составил 49 страниц программ на Планкалкюле для оценки шахматных позиций.

Первые программы для ЭВМ писались на языках программирования первого поколения, они представляли собой машинный код, который состоял из последовательности нулей и единиц. Машинный код работает на уровне команд процессора. Для разных производителей вычислительных машин проходилось писать новый код, так как машинный код является аппарата зависимым и не может переноситься с одного типа машин на другой.

Первым, практически реализованным языком программирования высокого уровня был Short Code (короткий код). Представляет собой уже не набор машинных кодов, а математические выражения, которые затем интерпретируются в машинный код. На рисунке 2 пример команды на Short Code:

Рисунок 2. Пример команды на Short Code.

На смену языкам первого поколения, стали приходить языки программирования второго поколения. Главным их отличием стал более понятный для человека синтаксис, за счет использования мнемоник (символьное обозначение машинных команд). К таким языкам относятся языки ассемблера и автокоды. Эти языки оставались аппарата зависимыми. С появлением языков ассемблера, становится необходимым перевод кода, в машинный код. Для этого были разработаны программы трансляторы, получившие название ассемблеры.


С приходом языков третьего поколения, таких как Фортран, была решена проблема переносимости кода на разные платформы. Разработанный в период с 1954 – 1957 годы, Фортран получил широкое применение для научных и инженерных вычислений. Фортран поставлялся со своим транслятором. В 1950-х годах появились такие языки как:

- Лисп – программы и данные, в которых представляются системами линейных списков символов, был разработан для работ по искусственному интеллекту и до сих пор остается одним из основных инструментальных средств в этой области;

- Кобол – один их старейших языков, предназначенный, в первую очередь, для разработки бизнес-приложений;

- Алгол – название ряда языков программирования, применяемых для решения научно-технических задач. Оказал заметное влияние на все разработанные позднее императивные языки программирования, в частности, на язык Pascal;

- Также к третьему поколению относят такие языки как: С, С++, С#, Java, BASIC, Pascal.

Языки программирования четвертого поколения лучше представлять как среды разработки четвертого поколения. Языки программирования четвертого поколения относятся к периоду с 1970-х до сегодняшних дней. Они ориентированы на написание крупных проектов. В этих языках встроенные операторы могут одной строкой описать такую функциональность, для реализации которой на прежних языках понадобились сотни или тысячи строк кода. Языки становятся объектно-ориентированными, оперирующие понятиями узкой предметной области. Примеры языков четвертого поколения: Python, Sql, Unix Shell, R, JavaScript, PHP.

Пятое поколение языков программирования предназначены для того, чтобы задачи программирования компьютер решал сам, без участия человека. Пользователь в этом процессе решает только то, какую задачу необходимо выполнить и какие условия должны быть выполнены. Пользователю не надо думать о методах выполнения задачи, об алгоритмах. Языки пятого поколения используются в исследованиях искусственного интеллекта. Примеры: OPS5, Mercury.

Основные парадигмы языков программирования были заложены в 1960-х и 1970-х годах и используются до сих пор. Сейчас языки программирования во многом лишь улучшают и развивают идеи заложенные в первые языки программирования. В 1980-х происходит сосредоточение на модульности организации кода.

В 1990-х годах, с развитием интернета растет популярность языков, позволяющих создавать веб-сценарии, например: Perl, Java.

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


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

2. ЯЗЫКИ ПРОГРАММИРОВАНИЯ В НАШИ ДНИ

В этой главе речь пойдет о нынешнем состоянии языков программирования. О классификации языков программирования, области применения, популярности.

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

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

Высокоуровневые и низкоуровневые языки. В этой классификации подразумевается отношение языка программирования к машинному коду и человеческому языку. Другими словами, чем больше уровень абстракции языка, тем выше уровень языка и наоборот, чем язык программирования ближе к машинному коду, чем меньше преобразований ему необходимо пройти, прежде чем стать исполняемым кодом, тем его уровень ниже. Вообще, принято относить язык либо к высокоуровневому, либо к низкоуровневому, но последнее время все чаще говориться о сверхвысокоуровневых языках, это языки пятого поколения, визуальные языки, также к ним относят языки четвертого поколения, но дополненных базой знаний. В этой классификации возможно встретить мнение о четвертом виде уровня – сдреднеуровневый. К этому уровню относят язык C, который позиционируют как высокоуровневый ассемблер, также его иногда относят к поколению 2,5. Как можно увидеть, данная классификация достаточно условная и не является формальной.

Безопасные и небезопасные языки программирования. То есть насколько программы, написанные на том или ином языке программирования отказоустойчивые, подвержены распространению ошибок, в том числе вероятность ошибок доступа к памяти. Безопасными называют языки, если программы на нем, принятые компилятором никогда не выдут за рамки допустимого поведения, а если программа и содержит ошибку, то такая ошибка не способна обрушить программу и нарушить целостность данных. Хоть термин и является неформальным, все-таки безопасность некоторых языков, например Standart ML, математически доказуема. Например, языки C или C++ не являются безопасными, в программах на них обширно встречаются ослабления типизации. А вот язык Forth, хоть и не претендует на звание безопасного, на практике существования программ, способных повредить данные практически исключено, так как при обнаружении потенциально опасной ошибки, программа аварийно прекратить работу на этапе тестового запуска.