Файл: Классификация языков программирования.Критерии выбора среды и языка разработки программ.pdf

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

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

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

Добавлен: 31.03.2023

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

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

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

Введение

Столетие, в котором мы живём, носит название «век информационных технологий». Всё потому, что в настоящее время информационные и компьютерные технологии являются одной из наиболее развивающихся областей современной жизни. Неразрывно с ними прогрессируют и обновляются ряды языков программирования, используемых для составления разного рода программ и WEB-сайтов.

Количество существующих языков программирования колеблется в диапазоне от нескольких сотен до более тысячи позиций с учётом модификаций. Грамотному специалисту в области информационных технологий важно не только быть знакомым с каждым из них, но и уметь ориентироваться в существующих и перспективных средствах написания программ и обоснованно и оперативно производить выбор наиболее предпочтительного языка программирования для решения той или иной задачи. Работник с подобными навыками сможет занять и сохранить в будущем конкурентоспособную позицию на прогрессирующем IT-рынке. К тому же, рынок информационных технологий, насыщенный программистами, которые умеют профессионально и эффективно осуществлять свою работу, имеет потенциал на дальнейшее развитие, что ведёт к укреплению конкурентоспособности страны в IT-сфере. В этом и заключается значимость данной темы курсовой работы.

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

Согласно поставленной цели в процессе написания курсовой работы решаются несколько основных задач: изучить историю становления и развития языков программирования; рассмотреть классификацию языков программирования; охарактеризовать языки программирования; изучить критерии выбора среды и языка разработки программ.

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

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

В третьей главе будут рассмотрены проблемы выбора языков программирования на примере разработки кроссплатформенных приложений[1] и возможные варианты их решения.

Предметом курсовой работы является оценка использования языков программирования в определённой среде для разработки программ по определённым критериям.

В процессе написания данного курсового проекта использовалась следующая учебная литература: «Основы алгоритмизации и программирования» под редакцией Л. Г. Гагариной и В. Д. Колдаева, «Основы алгоритмизации и программирования (среда PascalABC.NET)» под редакцией И. Г. Фризен, «Основы алгоритмизации и программирования на Python» С. Р. Гурикова, а также учебники, представленные в методических рекомендациях. Помимо учебной литературы, для составления третьей главы изучались научные статьи В. Б. Захарова, М. Г. Мальковского, А. И. Мостяева в «International Journal of Open Information Technologies» – рецензируемом электронном журнале издательства «Лаборатория Открытых Информационных Технологий факультета ВМК МГУ им. М.В. Ломоносова». Вышеперечисленная литература использовалась потому, что она наиболее полно раскрывала выбранную тему курсового проекта и являлась надёжной по причине того, что выпускалась от имени престижных университетов и авторитетных учёных.


Глава 1. Сущность языков программирования

1.1 Понятие языков программирования и краткая история их развития

Существует несколько определений понятия языка программирования: исходное, практическое и технологическое.[2]

Согласно исходному определению, язык программирования – это набор ключевых слов и система грамматических и синтаксических правил для конструирования операторов, состоящих из групп или строк чисел, букв, знаков препинания и других символов, с помощью которых программисты могут сообщать компьютеру набор команд.[3]

Практическое определение видит язык программирования как средство общения между человеком, которого обозначают как пользователя, и компьютером, обозначаемым как исполнитель.

С точки зрения технологий, язык программирования – это, прежде всего, инструмент для производства программных услуг.

Становление языков программирования можно начать с революционных идей Ч. Бэббиджа, которые привели к созданию автоматических цифровых вычислительных машин, и высказанных им в 20-х гг. XIX в. следующих принципов для вычислительной техники (которые впоследствии стали фундаментальными): 1) автоматическое выполнение операций, т.е. без остановок, требующих участия человека; 2) программа должна вводиться в исполнительное устройство со скоростью, соизмеримой со скоростью выполнения операций; 3) для записи программы можно использовать перфокарты.[4]

К числу первых программистов также относят А. Лавлейс, которая поддержала труды Бэббиджа, разработав для его машины некоторые чертежи и исследовав вопросы применения в ней двоичной системы исчисления.

На заре компьютерной эры, которым считается XX в., человек мог установить контакт с компьютером только при помощи машинного кода. Во времена того периода создатели языков программирования работали над тем, чтобы компьютер мог переводить эти языки на машинный код, и у них это получилось. Данное событие стало одним из величайших достижений 20-го столетия.[5]


На протяжении первой половины 20-го столетия формировалась среда программирования. Начало века связано с именем Джона Моучли, который создал системы кодирования машинных команд, используя специальные символы. Чуть позже Моучли совместно с другим программистом, Грейс Хоппер, начали использовать первые средства автоматизации программирования – языки Автокоды, впоследствии ставшими Ассемблерами. В конце 1940-х гг. Джоном Моучли была создана система, носящая название Short Code.[6] В 1944 г. для релейной машины «Марк I» под руководством Грейс Хоппер была написана подпрограмма для вычисления sin(x). В 1951 г. она же создала первый в мире компилятор. А в 1954 г. группа под её руководством разработала систему MATH-MATIC.

Во времена второй половины XX века в области программирования произошло стремительное развитие. Уменьшилась значимость программирования в машинных командах. Наблюдалось появление множества новых языков программирования, которые выступали связующим звеном между компьютерами и программистами.[7]

В 1954 году появился такой язык программирования, как FORTRAN. Далее, в 1958 году, усилиями Джона Маккартни был изобретён LISP. Результатом международного сотрудничества в области программирования в конце 1950-х явился ALGOL. В середине 1960-х трудом Томаса Курц и Джона Кемени появился специализированный язык программирования, состоящий из простых английских слов, имя которому – BASIC.

Долгое время BASIC не имел компилятора или интерпретатора, которые бы позволяли создавать полноценные exe-файлы. Лишь в 1975-м году Дик Уиппл и Джон Арнольд создали его первый компилятор. В этом же году фирма Micro Instrumentation and Telemetry Systems выпустила новую версию данного языка программирования.[8]

В начале 1960-х были предприняты попытки создать универсальный язык программирования. Первым детищем данного проекта стало появление PL/1 (Programming Language 1) в 1967 году. Он совмещал в себе особенности Фортрана, Кобола и Алгола. Затем на эту роль претендовал появившийся в 1968 году Алгол 68.[9]

В 1970-м году Никлаус Вирт создал известный практический каждому человеку, который более-менее знаком с азами информатики в школе, Паскаль. В момент разработки данного языка Вирт преследовал единственную цель – создать язык, по которому можно будет обучаться. Но качество Паскаля оказалось таким высоким, что охотно применять его в своей практике стали даже профессиональные программисты.[10]


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

Последующее развитие языка Паскаль привело к появлению библиотеки Turbo Vision и языка Object Pascal, который впоследствии стал основной для создания Delphi.[11]

Значительным вкладом в современное программирование послужило создание языка Си в 1972 году.[12] Первоначально этот язык был инструментом для реализации операционной системы UNIX на ЭВМ фирмы DEC. Однако он быстро стал применим и за пределами конкретной машины, операционной системы и задач системного программирования.[13]

В настоящее время список разработанных языков программирования продолжает пополняться. Эволюция продолжается.

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

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

Классификация языков программирования по типам задач представлена в таблице ниже.

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

Наименование задач

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

Задачи искусственного интеллекта

Lisp, Prolog, Multilisp, Commonlisp, Рефал, Planner, QA4, FRL, KRL, QLisp

Параллельные вычисления

Fun, Apl, Alfl, PARAlfl, ML, SML, PPL/1, Hope, Miranda, Occam, PFOR, Glypnir, Actus, параллельный Cobol, ОВС-ЛЯПИС, ОВС-Мнемокод, ОВС-Алгол, ОВС-Фортран, РА (1), РА (G)

Задачи вычислительной математики и физики

Occam, PFOR, Glypnir, Actus, параллельный Cobol, ОВС-ЛЯПИС, ОВС-Мнемокод, ОВС-Алгол, ОВС-Фортран, РА (1), РА (G)

Продолжение таблицы

Разработка интерфейса

Forth, C, C++, Ассемблер, Макроассемблер, Simula-67, OAK, Smalltalk, Java, РПГ

Разработка программ-оболочек, разработка систем

Задачи вычислительного характера

Algol, Fortran, Cobol, Ada, PL/1, Фокал, Basic, Pascal

Оформление документов, обработка больших текстовых файлов, организация виртуальных трёхмерных интерфейсов в Интернете, разработка баз данных

HTML, Perl, Tcl/Tk, VRML, SQL, PL/SCL, Informix 4GL, Natural, DDL, DSDL, SEQUEL, QBE, ISBL


Примечание – Источник: Гагарина Л. Г. Основы алгоритмизации и программирования: Учебное пособие / Л. Г. Гагарина – М.: ИНФРА-М, 2015 г. – С. 12

Простейшей классификацией является группировка языков программирования по уровням, которую ещё также называют классификацией по степени абстракции от аппаратуры.[14] Основных уровней у языков три: низкий, высокий и сверхвысокий. Соответственно в данной классификации выделяется три вида языков.

Низкий уровень языков программирования представлен находящимися в сильной зависимости от особенностей определённых ЭВМ и применимыми только на них языками, наборами операторов и изобразительных средств. Зависимость наблюдается от внутреннего языка, структуры памяти и т. д.[15] Основными представителями являются машинные или машинно-зависимые и машинно-ориентированные языки.

Как уже было написано выше, к языкам низкого уровня относятся так называемые машинные языки. Как сказано в учебнике С. А. Орлова: «Такие языки представляют собой свод правил кодирования инструкций для определённого типа ЭВМ с помощью чисел». Наиболее известные примеры языков такого вида – это Автокод, Ассемблер и Макроассемблер.[16]

Высокий уровень языков состоит из машинно-независимых языков таких, как Pascal, C, Basic и Си. Как сказано в учебнике С. А. Орлова: «Они имитируют естественные языки, используя некоторые слова разговорного языка и общепринятые математические символы». Особенностью языков высокого уровня считается то, что они способны определять сложные структуры данных.

К языкам сверхвысокого уровня относятся Prolog, SETL, APL, Miranda. Команды в таких языках исполняются полностью на абстрактной машине.

Следующая рассматриваемая классификация языков программирования – по типу транслятора. Трансляторы – это специальные приложения, переводящие в машинный код текст разработанного алгоритма.[17] Их используют для того, чтобы сложные высокие и сверхвысокие языки могли быть переведены в язык более низкого уровня.

По типу транслятора языки бывают компилируемые и интерпретируемые. Компилируемыми языками считаются такие языки, как PL/M, Си, Ассемблер и Pascal. К числу же интерпретируемых языков относятся всем известные Basic и Java.[18]

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