![](/stc/img/evkova.png)
Классификация языков программирования высокого уровня (Классификация программирования)
Содержание:
Введение
Каждый программист когда-нибудь задается вопросом, какой язык программирования ему стоит выбрать. Выбор языка программирования во время создания программы является очень важным моментом, от которого зависит очень и очень многое – скорость создания программы, скорость тестирования, возможность переноса на другие платформы, возможность быстрого внесения изменений, быстрота выполнения конечного продукта и так далее. При этом стоит помнить, что идеального языка не существует, все они обладают своими положительными и отрицательными качествами, которые будут так или иначе влиять на процесс разработки.
В настоящее время существует огромное количество языков на любой вкус и цвет. Есть и компилируемые и интерпретируемые языки, есть очень простые и крайне сложные языки, есть серьезные и казуальные языки. Много их, в общем, есть. И каждый из них создавался с определенной целью.
В обозримой вселенной известно несколько тысяч языков программирования. Человек всегда искал самый удобный способ постановки задач вычислительным машинам. Рассматривать мы будем именно языки программирования высокого уровня. Что же такое языки высокого уровня? По каким же критериям выбирать язык для своего проекта? Наглядно увидеть уровни языков программирования можно на рисунке №1 (см. приложения).
- Язык высокого уровня - Язык программирования, средства которого обеспечивают описание задачи в наглядном, легко воспринимаемом виде, удобном для программиста. Он не зависит от внутренних машинных кодов ЭВМ любого типа, поэтому программы, написанные на языках высокого уровня, требуют перевода в машинные коды программами транслятора либо интерпретатора.
Как вы уже поняли, объектом исследования курсовой работы являются языки программирования высокого уровня. Первая глава работы посвящена классификации различных языков программирования. Во второй главе мы подробно рассмотрим наиболее распространенные языки высокого уровня, проанализируем их достоинства и недостатки. В третьей главе мы подробнее рассмотрим критерии выбора языков.
В настоящее время, во всем мире, существуют такие языки программирования высокого уровня, как: Fortran, Algol, C, С++, Java и другие. В кругах программистов сейчас особое место занимает Паскаль. Популярности среди программистов он обязан, прежде всего, своей простоте, универсальности и удобству работы в нем. Язык программирования Паскаль используется уже более тридцати лет. На сегодняшний день создано уже семь версий. Проверим и убедимся, действительно ли вся слава популярного языка получена не просто так.
Также предметом исследования данной курсовой работы является изучение такого актуального вопроса, как использование процедур, функции и подпрограмм в языках программирования высокого уровня, а также основных подходов к созданию пользовательских меню.
Использование подпрограмм позволяет значительно оптимизировать и улучшить работу программиста, сократить объем памяти, занимаемый программой, сделать программный код более понятным. Создание пользовательских меню является одной из наиболее важных проблем при разработке пользовательского интерфейса.
Именно поэтому изучение этого аспекта программирования является особенно актуальным при написании современных программ на языках высокого уровня.
Глава 1. Классификация программирования
1.1 Машинно-ориентированные
Машинно-ориентированные языки – языки, наборы и изобразительные средства существенно зависят особенностей ЭВМ языка, структуры и т.д.). Машинно-ориентированные позволяют использовать возможности и особенности языков:
- высокое создаваемых программ и скорость выполнения);
- использования конкретных ресурсов;
- предсказуемость кода и заказов
- для составления программ необходимо систему команд и функционирования данной
- трудоемкость процесса программ ( особенно машинных языках и плохо защищенного появления ошибок;
- скорость программирования;
- непосредственного использования составленных на языках, на других типов.
Машинно-ориентированные по степени программирования подразделяются классы.
Машинный
Как уже в введении, отдельный имеет свой машинный язык МЯ), ему выполнение указываемых над определяемыми операндами, поэтому является командным. Однако, семейства ЭВМ (например, ЕС ЭВМ, IBM/370/ и др.) имеют единый МЯ для ЭВМ разной мощности. В команде любого из них сообщается информация о местонахождении операндов и типе выполняемой операции. [Хротко Г . Языки программирования высокого уровня, 1982 г]
Языки Символического Кодирования
Продолжим рассказ о командных языках, Языки Символического Кодирования (далее ЯСК), так же, как и МЯ, являются командными. Однако коды операций и адреса в машинных командах, представляющие собой последовательность двоичных (во внутреннем коде) или восьмеричных (часто используемых при написании программ) цифр, в ЯСК заменены на символы (идентификаторы), форма написания которых помогает программисту легче запоминать смысловое содержание операции. Это обеспечивает существенное уменьшение числа ошибок при составлении программ.
Использование символических адресов – первый шаг к созданию ЯСК. Команды ЭВМ вместо истинных (физических) адресов содержат символические адреса. По результатам составленной программы определяется требуемое количество ячеек для хранения исходных промежуточных и результирующих значений. Назначение адресов, выполняемое отдельно от составления программы в символических адресах, может проводиться менее квалифицированным программистом или специальной программой, что в значительной степени облегчает труд программиста.
Автокоды
Есть также языки, включающие в себя все возможности ЯСК, посредством расширенного введения макрокоманд - они называются Автокоды.
В различных программах встречаются некоторые достаточно часто использующиеся командные последовательности, которые соответствуют определенным процедурам преобразования информации. Эффективная реализация таких процедур обеспечивается оформлением их в виде специальных макрокоманд и включением последних в язык программирования , доступный программисту. Макрокоманды переводятся в машинные команды путями – расстановкой и генерированием. В системе содержатся - серии команд, требуемую функцию, макрокомандой. Макрокоманды передачу фактических которые в процессе вставляются в «остов» превращая её в машинную программу.
В с генерацией имеются программы, анализирующие которые определяют, функцию необходимо и формируют необходимую команд, реализующих функцию.
Обе системы используют с ЯСК и набор которые также операторами автокода.
Развитые получили название Ассемблеры. Сервисные и пр., как составлены на типа Ассемблер. Более информация об Ассемблера см. ниже.
Макрос
Язык, средством для последовательности символов выполнение требуемых ЭВМ на сжатую форму - Макрос (средство замены).
В Макрос предназначен того, чтобы запись исходной программы. Компонент обеспечения, обеспечивающий макросов, называется макропроцессором. На поступает макроопределяющий и текст. Реакция на вызов-выдача текста.
Макрос может работать, с программами, так и с данными.
Машинно – языки
Машинно – языки – это описания алгоритмов задач и информации, обработке. Они в использовании для круга пользователей и требуют от знания особенностей функционирования ЭВМ и ВС.
Подобные получили название языков программирования. Программы, на таких представляют собой операторов, структурированные правилам рассматривания сегменты, блоки и т.д.). Операторы описывают действия, должна выполнять после трансляции на МЯ.
Т.о., последовательности (процедуры, часто используемые в программах, представлены в языках отдельными операторами. Программист возможность не в деталях вычислительный на уровне команд, а сосредоточиться основных особенностях алгоритма.
Проблемно – языки
С расширением применения вычислительной возникла необходимость представление постановки и новых классов задач. Необходимо создать такие программирования, которые, в данной области и терминологию, позволили описывать требуемые решения для задач, ими проблемно – ориентированные языки. Эти языки ориентированные решение определенных должны обеспечить средствами, позволяющими и четко формулировать и получать результаты в форме.
Проблемных очень много,
Фортран, Алгол – созданные для математических задач;
Simula, - для моделирования;
Лисп, – для работы списочными структурами.
Об языках я расскажу дальше.
Универсальные
Универсальные языки созданы для круга задач: научных, моделирования и т.д. Первый язык был фирмой IBM, в последовательности языков Пл/1. Второй мощности универсальный называется Алгол-68. Он работать с символами, числами с фиксированной и запятой. Пл/1 развитую систему для управления для работы с переменной длины, с организованными в сложные и для эффективного каналов связи. Язык включенные во машины возможности и имеет соответствующие операторы. Предусмотрена параллельного выполнение программ.
Программы в компилируются с помощью процедур. Язык многие свойства Алгола, Кобола. Однако допускает не динамическое, но и и статистическое распределения памяти.
Диалоговые
Появление новых возможностей поставило перед системными – создать программные обеспечивающие оперативное человека с ЭВМ назвали диалоговыми языками.
Эти велись в двух направлениях. Создавались управляющие языки обеспечения оперативного на прохождение которые составлялись любых раннее (не диалоговых) языках. Разрабатывались языки, которые целей управления бы описание решения задач.
Необходимость оперативного взаимодействия с пользователем потребовала сохранения в памяти ЭВМ копии исходной
программы даже после получения объектной программы в машинных кодах. При внесении изменений в программу с использованием диалогового языка система программирования с помощью специальных таблиц устанавливает взаимосвязь структур исходной и объектной программ. Это позволяет осуществить требуемые редакционные изменения в объектной программе.
Одним из примеров диалоговых языков является Бэйсик (Basic).
Бэйсик использует обозначения подобные обычным математическим выражениям. Многие операторы являются упрощенными вариантами операторов языка Фортран. Поэтому этот язык позволяет решать достаточно широкий круг задач.
Непроцедурные языки
Непроцедурные языки составляют группу языков, описывающих организацию данных, обрабатываемых по фиксированным алгоритмам (табличные языки и генераторы отчетов), и языков связи с операционными системами.
Позволяя четко описывать как задачу, так и необходимые для её решения действия, таблицы решений дают возможность в наглядной форме определить, какие условия должны быть выполнены прежде чем переходить к какому-либо действию. Одна таблица решений, описывающая некоторую ситуацию, содержит все возможные блок-схемы реализаций алгоритмов решения.
Табличные методы легко осваиваются специалистами любых профессий.
Программы, составленные на табличном языке, удобно описывают сложные ситуации, возникающие при системном анализе.
Глава 2. Обзор и анализ особенностей применения языков программирования
Каждый язык уникален и пригоден для самых разных заданий. Рассмотрим каждый язык, проанализируем его положительные качества и отрицательные.
Каждый из описанных ниже языков программирования применяется для решения определенного круга задач. Напомню, что языки программирования высокого уровня подразделяют 3 категории:
1)процедурно-ориентированные;
2)проблемно-ориентированные;
3)объектно-ориентированные.
2.1 языки
К первому языков, который для записи или алгоритмов информации относят:
а) Фортран (Fortran). Является из первых программирования высокого уровня. К основным достоинствам наличие огромного математических библиотек, работы с целыми, и комплексными числами точности, встроенных обработки массивов. [Малютин Э.А. Языки 1982 г]
К можно отнести средств отладки и поведения программы, понимания исходного кода. По на данный Фортран является языком, применяемым научных и инженерных вычислений.
б) Бейсик (Basic). Был в 1964 г. в языка для программированию.
Основными этого языка простой синтаксис, позволяет в кратчайшие освоить этот программирования, простота графического интерфейса, использования WinAPI что значительно возможности языка.
Одним основных недостатков является то, он поддерживает операционные системы Windows, DOS и OS X, значительно сужает его применения. Также к можно отнести скорость работы и механизма наследования объектов.
в) Си (С) создан в 1969—1973 в качестве языка программирования и первоначально для написания UNIX. В 1980-е гг. язык С дополнен инструментами программирования и на него был язык C++.
Одним главных достоинств кроссплатформенность, а также аппаратные требования запуска скомпилированных широкий набор для реализации прикладных, так и задач.
К недостаткам можно отнести четкой стандартизации. В исторического развития его элементы заимствовались из языков, вне от наличия элементов. Это к наличию дублирующих и противоречащих друг элементов. Данные привели к тому, язык стал сложным для восприятия.
г) Паскаль (Pascal). Был математиком Н. Виртом для обучения программированию. Однако временем стал применяться для программных средств в программировании.
Самая версия была в 1968 году кафедры вычислительной Швейцарского федерального технологии Никласом Виртом. Основной при создании языка, является простота, с сохранением достоинств уже языков высокого программирования.
Популярность языка стала высокой, что к 1980 году более восьми его трансляторов. В 80-х годов программирования Паскаль более усилил позиции после трансляторов Turbo-Pascal персональных компьютеров. С момента язык вышел за узкого использования программистами-профессионалами. Он использоваться как инструмент пользователей и средство обучения программирования.
Одним главных достоинств Паскаль является структуризация, удобная разработки и отладки, пользователю обнаружить и синтаксические ошибки в программе. Также к можно отнести скорость компиляции возможность использования языка Ассемблер.
В от языка С в при использовании сведены к минимуму синтаксические неоднозначности, языка является понятным и доступным, как уже отмечено выше, изначально разрабатывался обучения студентов программированию.
К первоначально разработанного можно бы ряд ограничений: передачи функциям переменной длины, библиотека ввода-вывода, средств для функций написанных других языках и компиляции.
Несмотря долгую историю, является динамично языком программирования уровня. Современные компилятора ликвидировали перечисленных выше недостатков.
2.2 Языки
Теперь особенности языков класса. Основным проблемно-ориентированных языков является минимизация программиста при задач принадлежащих четко выделяемому классу. К проблемно-ориентированным относят следующие языки программирования:
а) язык Лисп. Считается вторым после Фортрана старейшим высокоуровневым языком программирования. Данный язык наиболее часто применяется при разработке экспертных систем и систем аналитических вычислений. Существуют современные версии этого языка, которые активно применяются при разработке новейших web-технологий. Также модификации данного языка используются в качестве встроенных языков программирования в САПР. Примером может послужить AutoLISP – язык для разработки надстроек в продуктах компании AutoDesk.
Лисп открыл для программистов новую область деятельности, известную ныне, как «искусственный интеллект». В настоящее время Лисп успешно применяется в экспертных системах, системах аналитических вычислений и т.п.
б) язык Пролог. Используется для реализации систем искусственного интеллекта, а также и интеллектуальных систем баз данных.
Написание программ на языке Пролог существенно отличается от использования других языков программирования. Программа на Прологе не является реализацией некоторого алгоритма, а представляет собой запись на языке формальной логики. Таким образом, данный язык относится к описательным языкам программирования.
Таким образом, сферой применения данного языка является решение логических задач. Для создания вычислительных, графически задач, реализации пользовательского интерфейса данный язык не предназначен.
Большинство объектно-ориентированных языков являются версиями процедурно-ориентированных и проблемно-ориентированных.
2.3 Java
Отдельного упоминания заслуживает язык Java. Язык Java зародился как часть проекта создания передового программного обеспечения (ПО) для различных бытовых приборов. Реализация проекта была начата на языке С++, но вскоре возник ряд проблем, наилучшим средством борьбы с которыми было изменение самого инструмента - языка программирования. Стало что необходим язык программирования, создавать программы, не приходилось компилировать отдельно каждой архитектуры и было бы на различных под различными системами. Язык потребовался для интерактивных продуктов сети Internet. Фактически, архитектурных решений, при создании было продиктовано предоставить синтаксис, с С и C++. В Java практически идентичные для объявления передачи параметров, и для управления выполнением кода. В добавлены все черты C++.
Три элемента объединились в языка Java:
- предоставляет для использования свои (applets) — небольшие, динамичные, не от платформы сетевые приложения, в страницы Web. Апплеты могут настраиваться и потребителям с такой легкостью, как документы HTML.
- высвобождает мощь разработки приложений, простой и знакомый с надежной и удобной в средой разработки. Это широкому кругу быстро создавать программы и новые апплеты.
- предоставляет программисту набор классов для ясного многих системных используемых при с окнами, сетью и ввода-вывода. Ключевая этих классов в том, что обеспечивают создание от используемой абстракций для спектра системных интерфейсов.
Наглядно систему времени Java можно рисунке №2 (см. приложения)
2.4 Популярные языки
В настоящий момент активно используются и следующие среды
а) Delphi некоммерческая – версия ОС семейства – основана на Pascal;
б) C++, С# C);
в) Visual (~ Basic);
г) Fortran (~
д) Prolog++ (~ Prolog).
е)
Одним из факторов для поставленной задачи оказаться верный языка программирования. Для поставленной задачи использовать различные высокого уровня, распространенными из являются С++ и Паскаль.
Язык является статически компилируемым, поддерживает работу с памятью. Именно его можно в качестве языка для изучения подпрограмм, процедур и функций. Простота графического интерфейса наглядно продемонстрировать создания пользовательского меню.
Увидеть
В данной главе работы мною произведена классификация программирования, рассмотрены их применения, изложены их особенности, достоинства и недостатки.
3. Критерии языка программирования
- Скорость конечного продукта.
Требовательным к выполнения могут программы с большим математических вычислений, моделирование физических расчеты большого экономических данных, трехмерной графики и прочее. Для целей хорошо компилируемые языки: ассемблер, фортран и т.д. Почему такие? После программа не (грубо говоря) лишнего и содержит в машинные команды, выполняются без задержек. Схема таких программ 1) программа сразу, так она самодостаточна и требует дополнительных 2) программа своего кода вызовы библиотек с кодом (как так и входящих в поэтому, кроме собственно своих программа вызывает из библиотек; в дополнение случаям 1 и программа может через прослойку которые написаны языках низкого и работают по быстро. Как максимум в схеме 4 блока: программа библиотеки -> -> железо. - Объем оперативной памяти.
Данное появляется, когда разрабатывается для систем, мобильных микроконтроллеров и так далее. В случаях, чем памяти расходует на данном – тем лучше. К языкам, опять же, относятся ассемблер, С/С++, Objective-C и другие. Список языков подобен списку пункта 1, так как чем меньше функциональных блоков в схеме исполнения, тем меньше занимается и памяти компьютера.
Если данное требование некритично, то можно использовать «истинно высокоуровневые языки». - Скорость разработки программы.
Данное требование возникает тогда, когда начальник говорит «программа нужна не позже, чем вчера!» или еще какая срочность. Тогда выбор падает на высокоуровневые языки с максимально человеколюбивым синтаксисом. Это, например, Java, Flash и подобные. На данных языках время разработки может существенно сокращаться из-за обилия сторонних библиотек, максимально «очеловеченного» синтаксиса, и подобных вещей. Скорость выполнения программ, написанных на данных языках страдает, причем порой весьма ощутимо. Схема выполнения на примере Java:
Программа в виде байт-кода -> виртуальная машина-анализатор -> системные библиотеки -> драйвера -> железо.
Самым медленно работающим блоком в данной схеме является анализатор – он должен байт-код программы транслировать «на лету» в машинный код, при этом потратив много времени на точное определение инструкции. Поэтому быстрая разработка зачастую означает медленное выполнение. - Ориентированность на компьютер или человека
С кем будет работать программа в первую очередь? С человеком, или с компьютером? В пером случае программа должна обладать мощной графической частью, отвечающей требованиям дизайна и юзабилити. Разработка графической части зачастую требует достаточно много времени, т.к. отличается немалой сложностью. Здесь сложность возникает в том, что вывод графики – это немало математики, а значит присутствует требовательность к скорости исполнения, а из-за сложности разработки присутствует необходимость в языке. В данном на мой очень хорошо их одновременной и и скоростью выполнения на них. Однако, очень сложный, красивый, возможно на которых красивых интерфейс проще, нежели С++ и, более, С. Если ориентирована в первую на «скрытую с минимумом взаимодействия с тогда выбор ложиться в сторону языков (ASM, - Кроссплатформенность.
Кроссплатформенность – работы программы различных платформах, в ОС с минимальными изменениями. В сфере можно такие языки: Java, ++ с библиотеками и другие, используемые, языки.
Java с тем условием, программы на языке должны на любой где есть – Java Virtual Machine. Программы Java вообще требуют никаких – после компиляции .jar файл, будет работать и Windows, и на OS, и на и еще немало где. Аналогичная и с Flash, только платформ гораздо обширный. С С++ обстоит труднее. На С++ написать программу довольно у кода возникает избыточность, теряется в скорости выполнения. Облегчают кроссплатформенные библиотеки, QT, которые добиться принципа код на платформы», однако каждую платформу программу собирать (при этом компиляторами).
В этот так же включить интерпретируемые, языки – для работы нужно интерпретатора языка в системе. Данные очень удобны в разработки, но медлительны. Схема работы напоминает работы Java/Flash, анализатор стал медленнее – полумашинный код анализировать лету» гораздо чем человеческий код. Так это влечет к потреблению памяти. - Скорость изменений, скорость
Проект стремительно в него постоянно изменения, порой немало? Тогда должен падать высокоуровневые языки, любой функциональный можно быстро переписать. Для – я думаю, гораздо дебажить тот С++, чем ассемблер. А проще Java. Но очень много которые таятся не сколько в сколько в разработчике с стилем программирования и компиляторах. Тем менее, язык свою долю в дело, так иначе упрощая/осложняя программиста.
Заключение
Вот и подошли к заключительной данной работы, рассмотрели все популярные языки высокого уровня, их достоинства и недостатки. Но, я уже упоминал, языка не существует. Каждый будет полезен в случае.
Так стоит учитывать, большие программы писаться на языках в зависимости их функционала. Например, к скорости работы пишутся на языках, графическая — на высокоуровневых и медленных. В практически в каждом упоминаются языки , С и С++. Это универсальные языки с количеством библиотек, с скоростью работы и многими другими плюсами. Но, плюсов, они еще довольно минусом – из-за универсальности и многогранности языки довольно в освоении, имеют много тонкостей, С++ который в себе большое парадигм, заставляя постоянно попадать в «ловушки». Язык тоже универсален, прост в изучении, обладает на взгляд значимым – крайне низкая работы. Это ограничивает его большие программы нем лучше писать из-за потребности в мощном обеспечении. Скриптовые интерпретируемые языки подойдут для «одноразовых программ», некоторых действий, а же для в связке с другими языками. Ассемблер – говоря это группа языков со схожим синтаксисом, но многими различными параметрами в зависимости от платформы (Например, ассемблер х86 это совсем не одно и то же, что и ассемблер SPARC)
Именно по всем этим причинам каждый программист должен сам выбирать под конкретный спектр работы наиболее подходящий язык программирования.
Библиография
1) Ваулин А.С. Языки программирования, 1993 г.;
2) Вольфенгаген В. Э. Конструкции языков программирования. Приёмы описания, 2001 г.;
3) Голицына О.Л. Программирование на языке высокого уровня.
4) Золотарев В.В. Основы автоматизации ч.1, 1978 г.;
5) Кенин А.М., Печенкина Н.С. Окно в мир компьютеров: Научно-популярное издание, 1994г.;
6) Тимофеев А.В. Информатика и компьютерный интеллект, 1991г.;
7) Терренс Языки программирования: разработка и реализация, 1979 г.;
8) Семакин И.Г., Шестаков А.П. основы алгоритмизации и программирования, 2012г.;
9) Малютин Э.А. Языки программирования, 1982 г.;
10) Хротко Г . Языки программирования высокого уровня, 1982 г.;
11) Ушкова В. Новые языки программирования и тенденции их развития, 1982 г.;
12) Янг С. Алгоритмические языки реального времени, 1985 г.;
13)Статья из научного журнала, взятая с информационного сайта [https://habrahabr.ru/post/1435]
Приложения
Рис.1 Уровни языков программирования
Рис. 2 Система времени выполнения Java (Диаграмма программиста Карима Аменовича Хайдарова)
- Тенденции и анализ развития сетевой и розничной торговли в России ( Общая характеристика розничной сетевой торговли )
- Отличительные черты систем поддержки принятия решений (Актуальность применения систем поддержки принятия решений)
- Библиотека ( Анализ предметной области )
- Классификация угроз и атак на операционную систему(Угрозы. Классификация угроз. Источники угроз.)
- Разработка регламента выполнения процесса «Складской учет ( Склады. Определение и виды )
- Основы проектирования программ. Этапы создания программного обеспечения ( ОБЩИЕ ПОЛОЖЕНИЯ ТЕОРИИ ПРОЕКТИРОВАНИЯ )
- Правовое государство на современном этапе развития общества
- Технологии и методы продаж в гостиничном бизнесе ( Концепции гостиничного маркетинга )
- Принятие управленческого решения как организационный процесс ( Понятие управленческих решений )
- Налоговый учет по акцизу»
- ПОНЯТИЕ И ЗАДАЧИ ЭКОНОМИЧЕСКОГО АНАЛИЗА ( Связь экономического анализа с другими экономическими науками )
- Применение процессного подхода для оптимизации бизнес-процессов ( Бизнес-процессы на основе документов )