Файл: Сравнительный анализ описания данных для различных языков программирования ( ЯЗЫКИ ПРОГРАММИРОВАНИЯ И ИХ КЛАССИФИКАЦИЯ).pdf
Добавлен: 31.03.2023
Просмотров: 290
Скачиваний: 1
ВВЕДЕНИЕ
Актуальность темы исследования заключается в том, что определения языка программирования с наиболее простым и понятным описанием данных способствует существенному сокращению времени, затраченному на разработку программного обеспечения (далее ПО). Что на сегодняшний день является очень полезным, так как в современном мире вычислительная техника (далее ВТ) играет огромную роль- ведь именно с ее помощью происходит оптимизация технологических процессов производства, автоматизация многих видов работ. Однако это становится возможным только после разработки соответствующего ПО. Таким образом, чем качественнее и быстрее будет происходить разработка ПО, тем быстрее данное ПО будет внедрено, и тем больше пользы принесет персональный компьютер (далее ПК) пользователю. Поэтому программисту сегодня необходимо иметь представление о передовых методиках, языках и технологиях программирования, а также обладать навыками их применения.
Объектом исследования являются языки программирования, их особенности и виды.
Предметом исследования является описание данных для различных языков программирования.
Целью данной работы является систематизация знаний о различных языках программирования, выявление оптимального языка для программирования.
Для достижения поставленной цели были определены следующие задачи:
- провести анализ литературных изданий, посвященных языкам программирования;
- определить основные понятия, связанные с программированием;
- проанализировать языки программирования;
- выделить основные особенности наиболее популярных языков программирования;
- изучить критерии эффективности языка программирования;
- привести описание данных для различных языков программирования
- проанализировать эффективность языка программирования в зависимости от описания данных.
Для решения поставленных задач были применены следующие общепринятые методы исследования: теоретические (изучение технологий программирования и программных средств, анализ литературы по проблеме исследования), специальные методы (анализ предметной области).
ГЛАВА 1. ЯЗЫКИ ПРОГРАММИРОВАНИЯ И ИХ КЛАССИФИКАЦИЯ
1.1. История развития языков программирования
Язык программирования представляет собой формальную знаковую систему, которая предназначена для записи компьютерных программ. Язык программирования определяет набор синтаксических, лексических и семантических правил, задающих внешний вид программного обеспечения (далее ПО) и действия, которые выполнит исполнитель (компьютер) под её управлением [1].
Рассмотрим историю развития языков программирования.
С развитием компьютерной техники (далее КТ) появился машинный язык, при помощи которого можно было задавать команды, оперируя с ячейками памяти, полностью используя возможности машины. Однако применения большинства КТ на уровне машинного языка затруднительно, особенно это касается ввода-вывода, поэтому от его использования отказались.
Для увеличения эффективности программы, вместо машинных языков стали применять близкие к ним машинно-ориентированные языки, называемые ассемблеры. В процессе программирования вместо машинных команд применяются мнемонические команды.
Но даже работа с ассемблером достаточно сложна и требует специальной подготовки.
Например, для процессора Zilog Z80 машинная команда 00000101, которая служит для уменьшения на единицу регистра процессора, на языке ассемблера будет записана как DEC B.
Для облегчения понимания программного кода в 1942 году был разработан язык программирования высокого уровня - язык Plankalkül (с немецкого языка - исчисление планов), который был разработан немецким инженером Конрадом Цузе.
Первым в мире транслятором языка высокого уровня является программирующая программа (ПП), он же ПП-1, который был успешно испытан в 1954 году.
Транслятор ПП-2, созданный в 1955 г году уже был оптимизирующим и включал в себя собственный загрузчик и отладчик, библиотеку стандартных процедур, а транслятор ПП для ЭВМ Стрела-4 включал в себя уже и компоновщик из модулей [2].
В 1955 году появился первый алгоритмический язык FORTRAN (FORmule TRANslator -переводчик формул), который был создан сотрудниками фирмы IBM под руководством Джон Бэкуса для решения научно-технических и инженерных задач.
В 1960 году появился язык ALGOL (Algoritmic Language -алгоритмический язык), который был ориентирован на научное использование, и который включал в себя множество новых понятий, одной из них является блочная структура. Данный язык стал концептуальным базисом для многих языков программирования.
В 1960 году за очень краткий срок группой CADASYL (Conferenceon Data System Languages) под руководством Joe Wegstein и при поддержке компании IBM был разработан стандартизированный деловой язык программирования COBOL (Comnon business oriented language-общепринятый деловой ориентированный язык). Данный язык в первую очередь ориентирован на решение экономических задач, а именно на обработку информации.
В 1961 году американский профессор Джон Маккартни разработал язык LISP (List procssing language -язык обработки списков), а Р.Грисуолд в 1962 году разработал язык программирования СНОБОЛ, который был ориентирован на обработку строк.
В 1965 году профессорами Дартмутского колледжа Томом Куртцем и Джоном Кемени для обучения студентов, которые незнакомы с вычислительной техникой (далее ВТ) был разработан язык BASIC (Beginners all-parpouse sumbolic instraction code - многоцелевой язык символических инструкций для начинающих). Впервые язык BASIC был применен в ПК IBM 704, но широкое распространение он получил в начале 80-х годов, после того как в 1975 году Пол Аллен и Билл Гейтс написали интерпретатор Basic для первого ПК Altair8800 [3].
В 1968-1970 годах профессор Никлаус Вирт в Цюрихскомполитехническом университете разработал язык PASCAL, как язык, который, с одной стороны, предоставлял бы возможность решать эффективно самые разнообразные задачи на современных ПК, а с другой - был бы очень хорошо приспособлен для обучения программированию. При разработке данного языка Вирт уделял большое внимание хорошему стилю программирования, так называемому структурному программированию, благодаря которому реализованные конструкции языка PASCAL позволяют писать легко проверяемые, надежные, программы с четкой и понятной структурой.
1.2. Классификация языков программирования
На сегодняшний день языки программирования высокого уровня подразделяются на следующие виды:
- объектно-ориентированные (Object-oriented languages) – языки программирования, которые при разработке ПО используют различные совокупности объектов, которые в свою очередь состоят из самих данных, операций, производящих над ними, и классов объектов, которые обращаются и вызывают друг друга для дальнейшей работы [4];
- логические (Logical languages) – языки программирования, которые применяются для разработки ПО в виде совокупности логических определенных правил с заранее описанными алгоритмами, которые как раз и обеспечивают обработку данных. Использование логических языков программирования требует упорядочивание основных моментов, которые лежат в базисе алгоритма, а не определение шагов, необходимых для получения результата [5];
- функциональные (Functional languages) – языки программирования, в которых действия c данными выражаются в виде терминов последовательности команд. Программные продукты разработанные на функциональном языке программирования, представляют собой совокупность различных описаний функций и выражений, необходимых для обеспечения результата. В функциональных языках программирования память используется для хранения значений переменных, и операторы присваивания отсутствуют, благодаря чему, переменные обозначают объекты программы, а не области памяти.[6]
- процедурные (Procedural languages) – языки программирования, в которых все действия над данными должны быть описаны последовательностями определенных команд. Таким образом, ПО, написанное на процедурном языке, представляет собой некоторую последовательностью команд, которая и определяет алгоритм решения задачи. Главной идеей данного вида программирования является то, что память должна применяться не для накопления и хранения информации, а для ее обработки, при этом главной командой в процедурном программировании является операция присвоения, при помощи которой и изменения определяются и вносятся в память ЭВМ, то есть ПО само осуществляет преобразование содержимого памяти, изменяя его, тем самым из исходного состояния память переходит к результирующему состоянию [7] (рисунок 1).
Рисунок 1 – Классификация языков программирования высокого уровня
На рисунке 2 отображена классификация наиболее популярных языков программирования.
Рисунок 2 – Классификация наиболее популярных языков программирования высокого уровня
1.3. Особенности популярных языков программирования
Рассмотри особенности наиболее популярных языков программирования.
1. Ассемблер является языком программирования, который расширен путем внедрения конструкций высокоуровневых языков программирования. К достоинствам данного языка следует отнести, компактный код, можно разработать ПО, которое работает на микроуровне, то есть вне операционной системы (далее ОС), например, BIOS или драйвер.
Главным недостатком данного языка программирования является то, что программисту очень сложно дается понимание программного кода, из-за того, что данный язык ориентирован под машину, благодаря чему происходит усложнение самого процесса программирования, отладки и даже доработки ПО.
2. BASIC является языком программирования, который изначально предназначался для получения начальных навыков программирования. Достоинством данного языка программирования является его простота – ключевые слова, применяемые в синтаксисе BASIC, взяты из английского языка. Недостатками данного языка является сложность структурирования программного кода.
3. Язык программирования Фортран (Fоrtran) является самым первым языком программирования высокого уровня, имеющий транслятор. Достоинством данного языка программирования является то, что он обладает, такими, важными факторами, как устойчивость и переносимость. Также неотъемлемой частью любого ПО, которое разработано на данном языке программирования, является специальная графическая библиотека, которая позволяет использовать различные графические данные при разработке ПО.
4. Язык программирования Pascal обладает строжайшей типизацией и наличием средств структурного (процедурного) программирования. Достоинством данного языка программирования является то, что он обладает огромным количеством возможностей для структурирования различных абстракций и информации (определение типов и перечислений, указатели, множества, записи).
5. C# является языком программирования высокого уровня. Достоинства данного языка заключаются в том, что на нем можно написать большое ПО с минимальным количеством ошибок, применяя при этом правила процедурного программирования. Недостатками данного языка является то, что до сих пор обнаруживается огромное количество случаев некорректного применения подобных элементов, которые не видны ни при компиляции ПО, ни во время исполнения программного кода.
ГЛАВА 2. СРАВНИТЕЛЬНЫЙ АНАЛИЗ ОПИСАНИЯ ДАННЫХ ДЛЯ РАЗЛИЧНЫХ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
2.1. Критерии эффективности языков программирования
Язык программирования можно определить множеством показателей, характеризующих отдельные его свойства. Возникает задача введения меры для оценки степени приспособленности языка программирования к выполнению возложенных на него функций — меры эффективности. Эффективность определяет степень соответствия языка программирования своему назначению и измеряется либо количеством затрат, которые необходимы для получения определенного результата, либо результатом, полученным при определенных затратах [8].
Произвести сравнительный анализ эффективности нескольких языков программирования, принять решение на использование конкретного языка позволяет критерий эффективности.
Критерий эффективности— это правило, служащее для сравнительной оценки качества различных языков программирования, Который базируется на основе частных показателей эффективности (показателей качества) таких, как:
- читабельность (легкость чтения и понимания программ);
- легкость создания программ (удобство языка для создания программ в выбранной области);
- надежность (обеспечение минимума ошибок при работе программ);
- переносимость программ (легкость переноса программ из одной операционной среды в другую);
- универсальность (применимость к широкому кругу задач);
- четкость (полнота и точность официального описания языка) [9].
Одним из важнейших показателей качества языка программирования является легкость чтения и понимания программ, написанных на нем.
Простота. Простота оказывает сильное влияния на читабельность языка программирования. При этом язык должен предоставить простой набор конструкций, которые могут быть использованы в качестве базисных элементов при создании программы. Желательно обеспечить минимальное количество различных понятий с простыми правилами их комбинирования. Этому мешает наличие в языке нескольких способов описания одного и того же действия. Например, в языке С добавление единицы к целому числу можно записать четырьмя способами. Сильное воздействие на простоту оказывает синтаксис языка: он должен прозрачно отражать семантику конструкций, исключать двусмысленность толкования. Предельно лаконичный синтаксис удобен при написании программы, однако усложняет ее модификацию, поскольку в программе нелегко разобраться. Здесь нужен разумный компромисс — простота не должна быть чрезмерной, не должна приводить к загадкам расшифровки [10].