Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Классификация языков программирования высокого уровня (ОБЗОР И АНАЛИЗ ОСОБЕННОСТЕЙ ПРИМЕНЕНИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ)

Содержание:

ВВЕДЕНИЕ

Программирование - это умение разрабатывать программные продукты, написанные на языке программирования. Что такое язык программирования? Это знаковая система предназначенная для написания программ понятных для компьютера, с помощью которой можно формулировать алгоритмы. Язык программирования - это совокупность синтаксических, семантических и лексических правил, задающих внешний облик действия и программы, выполняющих исполнителем (компьютером) под его управлением.

Более 2.5 тысяч языков программирования было создано с начала появления первых программируемых машин. Каждый год число языков программирования пополняется новыми языками. Какими-то языками может пользоваться только лишь малое число их собственных разработчиков, а какие-то становятся известны множеству людей. Опытные программисты чаще всего используют в своей работе более одного языка программирования. Множество языков программирования использует конструкции для манипулирования и определением структур данных и управлениям процессом вычислений.

Существуют различные классификации языков программирования.

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

Язык близкий к естественному языку программирования, зовётся языком программирования высокого уровня, а язык близкий к машинным командам, - языком программирования низкого уровня.

Также языки программирования делятся на поколения:

– языки первого поколения: языки с ручным управлением памяти на компьютерах первого поколения, - машинно-ориентированные..

– языки второго поколения: автокоды, с мнемоническим представлением команд.

– языки третьего поколения: использующиеся для разработки прикладных программ любого типа. К примеру, Basic, Cobol, C и Pascal.

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

– языки программирования пятого поколения: языки визуальные, объектно-ориентированные и декларативные. Например, Prolog, LISP, C++, Visual Basic, Delphi.

Объектом исследования данной курсовой работы будут языки программирования высокого уровня.

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

Одной из важных проблем при разработке пользовательского интерфейса является создание пользовательских меню.

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

Перед выполнением курсовой работы я поставил для себя следующие задачи:

1) Произвести классификацию и рассмотреть особенности языков программирования высокого уровня.

2) Обьяснить выбор языка BASIC для дальнейшего исследования.

3) Рассмотреть принципы использования процедур, функции и подпрограмм, а также создания пользовательского меню с помощью языка программирования высокого уровня Basic.

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

1.1 Ранние этапы развития

Самые первые языки программирования появлялись еще до появления современных ЭВМ: в 19 веке уже были изобретены устройства, которые можно назвать программируемыми — например, ткацкие станки и механические пианино. Для управления этими устройствами использовались инструкции, которые в рамках современной классификации можно считать первообразами предметно-ориентированных языков программирования. Самым значимым можно считать язык, на котором Ада Августа графиня Лавлейс написала программу для вычисления чисел Бернулли для Аналитической машины Чарльза Бэббиджа, возможно, в случае реализации, ставшей бы первым компьютером в мире.

В 1930—1940 годах, А. Чёрч, А. Тьюринг, А. Марков в СССР разработали математические абстракции (лямбда-исчисление, машину Тьюринга и др.).

В это же время, в 1940-е годы, появились электрические цифровые компьютеры и был разработан язык программирования, который можно считать первым высокоуровневым языком программирования для ЭВМ —"Plankankül", созданный немецким инженером К. Цузе в периоде с 1943 по 1945 года.

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

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

Языки третьего поколения, такие как Fortran, LOSP и Cobol стали появляться с середины 1950-го года. Данный тип языков программирования более абстрактен (их, кстати, и называют «языками высокого уровня») и универсальны и не имеют зависимости от аппаратной платформы и использующихся на ней машинных команд. Программы на языке высокого уровня могут исполняться на любой ЭВМ, на которой для этого языка имеется транслятор (инструмент, переводящий программу на язык машины, которая после может быть выполнена процессором).

Более новые версии перечисленных нами языков всё ещё имеют хождение в разработке ПО, каждый из них оказал какое-то влияние на дальнейшее развитие языков программирования. А вот в конце 1950-х годов, появился Algol, который послужил основой для дальнейших разработок в этой сфере. Имеет смысл заметить, что на использование и формат ранних языков программирования в огромной степени влияли интерфейсные ограничения.

1.2 Совершенствование

Между 1960-ми — 1970-ми годами были разработаны основные парадигмы языков программирования, во множестве аспектах этот процесс представлял собой лишь улучшение концепции и идеи, заложенные еще в первых языках третьего поколения.

  • Оказал влияние на функциональное программирование и стал первым языком, поддерживавшим обработку массивов язык APL .
  • Язык ПЛ/1 (NPL) был разработан в 1960-х годах как объединение лучших черт Fortran'а и Cobol'а.
  • Язык Симула, появившийся в это же время, впервые включил в себя поддержку объектно-ориентированного программирования. В середине 1970-х группа специалистов представила язык Smalltalk, который был уже полностью объектно-ориентированным.
  • В период с 1969 по 1973 годы велась разработка языка С, популярного и в настоящее время, ставшего основой для множества следующих языков, например, как С++ и Java.
  • В 1972 году был создан Prolog — самый известный язык логического программирования.
  • В языке ML, в 1973 году, положившая начало типизированным языкам функционального программирования, была осуществлена расширенная система полиморфной типизации.

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

Кстати, в 1960—1970-х годах велись споры о необходимости поддержки структурного программирования в тех или иных языках. С предложениями о полном отказе от использования инструкций GOTO во всех высокоуровневых языках программирования выступал голландский специалист Э. Дейкстра. Ещё развивались способы, обычно, направленные на повышение продуктивности программиста и пользователя, а также сокращение объема программ.

1.3 Объединение и развитие

В 1980-е годы наступил период, который можно назвать временем консолидации. Объединил в себе черты системного и объектно-ориентированного программирования язык С++, правительство США стандартизировало, образованный от языка Pascal, язык Ада, предназначенный для использования в бортовых системах управления военными объектами, в Японии и в других странах мира, в изучение перспектив языков программирования пятого поколения осуществлялись значительные инвестиции, которые включали в себя конструкции логического программирования. Сообщество функциональных языков приняло в качестве стандарта ML и LISP. Этот период характеризовался скорее опорой на заложенный в предыдущем десятилетии фундамент, чем разработкой новых парадигм.

Тенденцией, которая наблюдалась в разработке языков программирования для крупномасштабных систем, было сосредоточение на применении модулей — объемных единиц организации кода. Некоторые языки, такие, как ПЛ/1, уже поддерживали функциональность, модульная система нашла свое отражение и применение в языках Модула-2, Оберон, Ада и ML. Модульные системы объединялись с конструкциями обобщенного программирования.

Важным направлением работ становятся графические языки программирования, в которых процесс «написания» программы как текста заменяется на процесс «рисования» на экране ЭВМ. Графические языки обеспечивают лучшее восприятие логики программы человеком.

В 1990-х годах в связи с развитием Интернета распространение получили языки, позволяющие создавать сценарии для веб-страниц — главным образом Perl, развившийся из скриптового инструмента для Unix-систем, и Java. Возрастала также и популярность технологий виртуализации. Эти изменения, однако, также не представляли собой фундаментальных новаций, являясь скорее совершенствованием уже существовавших парадигм и языков.

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

1.4. Когда возникли языки высокого уровня

Ответить конкретно на вопрос о том, когда именно появился первый язык программирования высокого уровня довольно сложно. Первые попытки внедрить что-то подобное наблюдались еще в 70 годах, но тогда массового использовался в основном Pascal, который еще нельзя отнести к высокому уровню. Американские военные первыми взялись разрабатывать язык программирования высокого уровня для решения своих задач. В результате их работы в начале 80-х годов ими был разработан язык Ada, который был очень функциональным для своего времени, но в то же время предельно упрощен. Его главной задачей было программирование различной военной аппаратуры, встроенных систем, где любые сложности и долгие подсчеты идут только во вред.

Также приблизительно в те же годы был создан всеми любимый язык C, с которого в итоге развились и С++ и СИ Шарп, и ряд других достойных примеров, список которых может оказаться довольно длинным. Также именно из высокоуровневого языка С берет свое начало популярнейший в наше время язык высокого уровня Java, на котором одинаково эффективно пишутся программы, скрипты, плагины и прочие «примочки» как на компьютеры, так и на разнообразные гаджеты: смартфоны, планшеты, смарт часы, очки виртуальной и дополненной реальности. Указанные языки были лидерами еще в далекие 80-90-е годы и остаются ими и поныне, хотя конечно, за это время изменилось и появилось очень многое.

1.5. Поколения языков программирования

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

- Первое поколение. В начале 50-х годов, когда на свет только появились первые компьютеры, был создан язык ассемблера, первый язык, который отвечал принципу «одна строка – одна инструкция».

Языки машинные, то есть языки программирования на уровне команд процессора определенной машины относят к первому поколению (англ. first-generation programming language, 1GL). Команды программы вводились прямо в машинном коде на передней панели машины переключателями, а транслятор для программирования не использовался. Данные языки были очень сложные для решения прикладных задач и изучения, но достаточно хороши для детального понимания функционирования конкретной машины.

- Второе поколение. Конец 50-х – начало 60-х годов разработали символический ассемблер. В нем уже появилось понятие переменной.

Языки второго поколения (2GL) были созданы для того, чтобы работа по программированию стала более легкой, перейдя в выражениях языка от низкоуровневых машинных понятий ближе к тому, как обычно мыслит программист. Такие языки, в частности, как Фортран и Алгол появились в 1950-е годы. При разработке языков второго поколения возникла проблема первостепенной важности. Перед создателями появилась задача внушить клиентам то, что код созданный компилятором выполняется вполне хорошо, чтоб оправдать отказ от программирования на ассемблере. Возможность создания хороших программ с помощью автоматических компиляторов было подвергнуто недоверию, тогда разработчики таких систем вынуждены были представить, что как и при ручном кодировании, они могут генерировать почти такой же хороший код практически для любой задачи.

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

Под третьим поколением поколением (3GL) понимались языки программирования более высокого уровня, чем ассемблер. Языки третьего поколения выражали алгоритм в форме, которые не зависили от характеристик машин, на котором он будет исполнятся, такие языки были независимы от аппаратного обеспечения. Именно это стало их главной отличительной чертой. Коды, которые написаны на языке программирования третьего поколения, перед исполнением могут транслироваться в машинные команды, а коды на ассемблере и после уже ассемблируется. При компиляции уже нет соответствия один-к-одному между генерируемым кодом и инструкциями программы, в отличии от прошлых поколений.

Инструкции программы исполняются одна за другой и уже не преобразуются в машинный код.. Это свойство стало широко использоваться для интерпретации программ. С помощью использования интерпретатора, который скомпилирован под конкретную аппаратную платформу, достигается свобода от «железа». Лисп стал одним из ранних интерпретируемых языков.

- Четвертое поколение алгоритмических языков возникло в начало 70-х годов, и существует по настоящее время. Языки этого поколения как раз и предназначены для реализации крупных проектов. Они повышают скорость и надежность создания таких проектов, эти языки предназначены на специализированные сферы пременения, использующие проблемно-ориентированные языки программирования, не универсальные, а опрерирующие конкретными понятиями узкой предметной сферы. Если для описания какой-либо функциональности на языках старых поколений потребовались бы тысячи строк исходного кода, то для реализации той же задачи на языках четвертого поколения достаточно одной строки. Причина том, что в эти языки встраиваются мощные операторы.

- Пятое поколение языков программирования с середины девяностых годов и по настоящее время. Системы автоматического создания программ с помощью визуальных средств разработки, без знания программирования. Главной идеей было возможностью автоматического формирования результата текста на универсальных языках программирования. Для человека, не знакомого с программированием достаточно инструкций, которые вводятся в компьютер в максимально доступном и наиболее удобном виде.

2. Обзор современных языков программирования

Развитие ИТ-индустрии с каждым годом набирает все новых и новых оборотов. Постепенно появляются более актуальные технологии, которые охватывают все отрасли веб-строительства. Оставаться на высоте — это главный фактор в мире IT. При этом выбрать из более 600 уникальных языков программирования лучший язык — нелегкая задача.

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

К примеру, несколько лет назад был популярен язык Perl. Сегодня его опередил РНР. Кроме того, веб-разработчиками успешно используются актуальные Python, Ruby и Java. Для успешной работоспособности данных технологий используется подходящий хостинг, который должен поддерживать существующие языки. Не все хостинг-провайдеры могут предоставить услуги размещения сайтов для определенных технологий. Мы постараемся рассмотреть каждый из них, ведь большинство из этих языков наши тарифы хостинга поддерживают.

Серверы баз данных также не имеют единого программного решения. Например, кроме всем известного MySQL, могут использоваться и другие базы данных – PostgreSQL, Firebird, SQLite.

Для начала рассмотрим всем известный язык РНР, который отлично подходит для написания веб-приложений работающих с данными. Он также предназначен для создания систем управления контентом, таких как WordPress. Язык включает в себя множество функций, и с выходом каждой новой версии эти функции только расширяются сейчас уже доступна версия php 7. С помощью данной технологии создаются как маленькие так и огромные проекты в Сети, пишутся скрипты для сайтов, такие как чаты, формы обратной связи, тесты, гостевые книги и тп.

Широкое применения данного языка сделало его очень популярным среди веб-разработчиков. Какие технические характеристики хостинга подходят для него?

Наиболее популярной в сфере хостинг-технологий есть связка PHP и MySQL. Рассмотрим ее особенности:

использования версии языка на выбор. Многие хостинг-провайдеров поддерживают старые и новые версии PHP.

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

наблюдается тенденция к использованию PHP-фреймворков, которые упрощают разработку веб-приложений – Zend Framework, CakePHP, Symfony. Если эти фреймворки предустановленны в хостинге, то это очень удобное и полезное решение.

хостинг с PHP и MySQL станет хорошим решением для сложных коммерческих сайтов, например, интернет-магазинов. Кроме того, стоимость такого хостинга вполне приемлимая.

пока что идеальной альтернативы связке PHP и MySQL как таковой не существует. Конечно, провайдеры предлагают и другие варианты, например, PostgreSQL, SQLite, FirebirdSQL, которые работают по одинаковому принципу, но ограничивают клиента по определенным функциям, что влияет на работу сайтов.

К слову, не все провайдеры предоставляют удобства PHP и MySQL для своих клиентов.

Другой язык программирования, который не только имел свою популярность ранее, но и до сих пор используется веб-разработчиками – Perl. Название языка расшифровывается как — «практический язык для извлечения данных и составления отчётов». Perl предоставляет широкие возможности для разработки кратких и эффективных приложений, системных программ.

Предоставление хостинга для Perl не требует особых возможностей. Хостинг с поддержкой Perl работает с помощью двух способов – CGI или mod_perl. Язык характеризуется своим быстродействием и надежностью работы. Для всех платформ доступны дистрибутивы Perl. Если рассматривать его в перспективном направлении, то все надежды связаны с выходом шестой версии языка. Также перспективой есть применение современных фреймворков на Perl, например, Catalyst.

Особенность данного языка программирования – библиотека модулей CPAN, которая является общей для всех пользователей хостинга. Она содержит большое количество документации и ПО. От данного содержания зависит качество и работоспособность хостинга для Perl.

Следующим рассмотрим язык программирования высокого уровня Python. Язык используется для создания разноуровневых веб-приложений. Открытая разработка, простота в изучении и большое сообщество разработчиков – основные преимущества интепретируемого языка для скриптов. Python подходит для большинства рода задач, в том числе он используется такими гигантами как Google и Yandex. Так как технология практически ничем не ограничена, она может быть применена и в крупных проектах, и в мелких ежедневных задачах, таких как резервное копирование, чтение електронной почты.

Что касается технологий хостинга, на серверах для Python должны быть предустановленны плагины, которые позволят работать с языком. Зачастую хостинг для Python нужен тем, кто использует популярный фреймворк Django. Удобный и полезный Django позволяет создавать высокопрофессиональные приложения, шаблоны для сайтов и CMS.

Особенности Python хостинга:

широкая распространенность, так как почти каждый дистрибутив Unix имеет интерпретатор Python;

особый интерес к данному виду хостинга обозначен прежде всего интересом и популярностью фреймворков – Zope, Django, TurboGears, Pylons, web.py, которые непосредственно связаны с данным языком программирования;

установка вышеперечисленных фреймворков не всегда посильная и часто сложная задача, из-за чего в основном тормозит развитие хостинга для Python в СНГ.

Еще один не менее известный за предыдущий язык программирования Ruby – и фреймворк Ruby on Rails. Язык Ruby применяется не только в веб-разработке, но и в системном администрировании ( он работает в ОС – Linux, MS Windows и BSD, Mac OS X). Фреймворк Ruby on Rails появился на свет уже после самого языка, и дал возможность делать сайты уже с помощью Ruby. По своей структуре язык чем то похож с Perl, Smalltalk, Python, но имеет уникальные функции.

Данная комбинация используется компаниями для создания различных проектов и разработки автоматизированных систем, которые решают задачи в бизнесе – учет, документооборот и тп.

Особенности хостинга для Ruby и Ruby on Rails:

технология очень требовательна к ресурсам сервера, на котором будет размещаться проект;

поддерживает базы данных MySQL, Firebird, PostgreSQL, IBM DB2, Oracle и Microsoft SQL Server, которые без проблем могут мигрировать между собой;

RoR кроме самого интерпретатора требует установки собственных компонентов системы;

работает со многими веб-серверами, например, Apache или nginx+passenger;

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

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

Изначально язык назывался Oak («Дуб») и использовался для программирования бытовых электронных устройств. Впоследствии он был переименован в Java и стал использоваться для написания клиентских приложений и серверного программного обеспечения.

Данная платформа представляет собой целый комплекс технологий, предназначенных для серверов, которые исполняют Java-приложения на клиентских компьютерах. Популярные сервисы в Сети используют в своей основе концепцию Java Enterprise Edition.

Какие особенности хостинга для Java?

унифицированный доступ к базам данных;

большое количество полезных стандартных массивов, стеков и списков;

множество фильтров, настройка ввода и вывода;

простота в разработке многопоточных приложений;

реализовано автоматичное управление памятью;

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

3. Обзор и анализ особенностей применения языков программирования высокого уровня

3.1. Отличия языков программирования высокого уровня

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

К примеру, если подключенное к ПК устройство (например, кулер) может работать на максимальных оборотах 1000 об/мин, то когда программист, используя низкоуровневый язык, пишет на него драйвера, он должен это знать и учитывать, так как если он поставит большее количество оборотов, то устройство испортится. Программисты же, которые используют языки программирования высокого уровня даже не задумываются об этом – они просто задают, к примеру, запуск кулера в определенный момент времени и его остановку. Но стоит помнить, что это довольно упрощенные определения.

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

В машинно-независимых системах программирования используются высокоуровневые языки программирования. Сравнивая с машинно-ориентированными системами такие системы программирования наиболее просты в применении.

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

Языки программирования высокого уровня делятся на группы:

процедурно-ориентированные, употребляющиеся для записи процедур или же алгоритмов обработки информации на любом круге задач;

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

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

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

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

а) язык Фортран (Fortran) (от Formulae Translation — «преобразование формул»).

Внутри корпорации IBM, в 1954 году, был создан язык программирования Fortran группой разработчиков во главе с Джоном Бэкусом. Этот язык является одним из самых первых языков программирования высокого уровня. Главным его преимуществом является наличие большого числа математических библиотек, поддержка работы с целыми, вещественными и комплексными числами высокой точности [3,4], встроенных средств обработки массивов. Программист впервые по-настоящему мог отвлечься от особенностей машинной архитектуры.

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

Язык Fortran используется по сей день для научных вычислений. Страдая от отсутствия многих привычных языковых конструкций и атрибутов, компилятор практически никак не проверяет синтаксически правильную программу с точки зрения семантической корректности. В нем нe имеется поддержки современных способов структурирования кода и данных. Осозновали это сами разработчики. Перед ними стояла задача разработки скорее компилятора, чем самого языка. Понимание самостоятельного значения языков программирования пришло довольно позже.

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

б) В 1963 году в Дартмурском колледже (Dartmouth College) был создан язык программирования BASIC (Beginners’ All-Purpose Symbolic Instruction Code — многоцелевой язык символических инструкций для начинающих). Язык был направлен как средство обучения, как первый изучаемый язык программирования. Он подразумевался как легко компилируемым и интерпретируемым.

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

BASIC действительно стал языком, на котором учатся программировать (так было несколько лет назад, а сейчас эту роль занимает Pascal). Было создано несколько мощных реализаций BASIC, поддерживающих самые современные концепции программирования (лучший пример — Microsoft Visual Basic).

Одним из его главных недостатков является то, что он поддерживает только операционные системы Windows, DOS и Mac OS X, что в значительной степени уменьшает область его применения. Ещё к недостаткам можно отнести низкую скорость работы и отсутствие механизма наследования реализации объектов [6].

в) в 1969—1973 годах язык Си (С) был создан в качестве языка предназначенного в качестве для написания ОС UNIX и системного программирования [4,12]. В 1980-х годах язык С был дополнен инструментами объектно-ориентированного программирования и на основе него был создан язык C++.

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

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

г) язык Паскаль (Pascal). В 1970 году был создан математиком Никлаусом Виртом ориентированный непосредственно для обучения программированию. Но со временем стал широко распространяться для разработки программных средств в профессиональном программировании.

Самая первая версия была создана в 1968 году профессором кафедры вычислительной техники Швейцарского федерального института технологии Никласом Виртом [3]. Главной целью, разработки нового языка, его простота, с сохранением всех преимуществ уже имеющихся в то время языков высокого уровня программирования.

Популярность этого созданного языка стала настолько высокой, что уже к 1980 году насчитывалось более восьмидесяти его трансляторов. А в начале восьмидесятых годов язык программирования Pascal еще сильнее усилил свои позиции после создания трансляторов Turbo-Pascal для персональных компьютеров. С того момента язык вышел за рамки узкого использования профессиональными программистами. Pascal стал использоваться как рабочий инструмент и как средство для обучения языку программирования.

Одним из преимуществ Pascal является четкая структуризация, удобная среда разработки и отладки, которая позволяет пользователю обнаружить синтаксические и логические ошибки в программе. А ещё к его преимуществам можно отнести возможность использования вставок языка Ассемблер и высокую скорость компиляции программ.

В отличии от языка С (С++) при использовании Pascal сведены к минимуму возможные синтаксические неоднозначности [1,2], построение языка интуитивно понятно и доступно, потому что, как уже было отмечено раньше, язык разрабатывался для обучения студентов программированию.

К плохим сторонам изначально разработанного компилятора можно отнести такие ограничения, как невозможность передачи функциям массивов переменной длины, отсутствие средств для подключения функций написанных на других языках и раздельной компиляции, а также ограниченная библиотека ввода-вывода, [7,9].

Плохой чертой языка являлось не имения в нем средств для разбивки программы на модули. Вирт понимал это и в 1978 году создал язык Modula-2, в котором идея модуля стала одной из самых главных концепций языка. В 1988 году появился Modula-3, с объектно-ориентированными чертами. Продолжением Modula и Pascal являются язык Oberon и Oberon-2. Характеризующиеся движением в сторону компонентно- и объектно- ориентированности.

Pascal является активно развивающимся языком программирования высокого уровня. Новые версии компилятора убрали большинство из перечисленных недостатков.

Посмотрим на особенности другого класса языков. Основным достоинством проблемно-ориентированных языков программирования является минимизация трудозатрат программиста при решении задач принадлежащих некоторому четко выделяемому классу [3]. К проблемно-ориентированным относят следующие языки программирования:

а) язык Lisp. Является вторым после Фортрана старейшим высокоуровневым языком программирования [3,16]. Этот язык часто применяется при разработке систем аналитических вычислений и экспертных систем. Существуют также современные версии этого языка, активно применяющиеся при разработке новых web-технологий. Модификации этого языка используются также в качестве встроенных языков программирования в САПР. Примером может быть AutoLISP – язык примеяющийся для разработки надстроек в продуктах компании AutoDesk.

б) язык Prolog. Используют для реализации разного рода систем ИИ (искусственного интеллекта) и интеллектуальных систем баз данных [3].

Написание программ на языке Prolog довольно сильно отличается от применения других языков программирования. Программа на Прологе представляет собой запись на языке формальной логики [16]. В общем, данный язык относится к описывающим языкам программирования.

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

Развитые версии процедурно-ориентированных и проблемно-ориентированных - это большинство объектно-ориентированных языков.

Программирование с помощью языков этой группы наиболее просто и наглядно. Среди таких языков можно выделить следующие языки:

а) Visual Basic (Basic);

б) Delphi (Pascal);

в) Visual Fortran (Fortran);

г) С++ (С);

д) Prolog++ (Prolog).

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

Одним из важных элементов для выполнения поставленной задачи может оказаться верный выбор языка программирования. Для осуществления поставленной задачи также возможно использовать любые языки высокого уровня, для начинающих программистов наиболее распространенным из которых является BASIC.

Этот язык выбран потому, что он достаточно прост и его можно легко установить на компьютере. Существует несколько видов данного языка. Это GW-Basic, TurboBasic, Qbasic и так далее. Работа с этими версиями очень похожи друг на друга принципами построения, базовыми наборами операторов и конструкциями. Поэтому, изучив один вариант, легко перейти к другому.

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

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

4. ЯЗЫК ПРОГРАММИРОВАНИЯ VISUAL BASIC. ПОНЯТИЕ ПРОЦЕДУРЫ. ПОДПРОГРАММЫ И ФУНКЦИИ. МОДУЛЬНЫЙ ПРИНЦИП ПОСТРОЕНИЯ ПРОГРАММНОГО КОДА

Весь программный код в Visual Basic находится внутри процедур и подпрограмм. Общая конструкция описания подпрограммы Visual Basic выглядит:

Sub <имя_подпрограммы> [(<параметры>)]

 <операторы> 

End Sub

Такие процедуры могут быть вызваны самим Visual Basic, или другими процедурами. С помощью следующих операторов выполняется вызов подпрограммы:

  • Call <имя_подпрограммы> [(<параметры>)];
  • <имя_подпрограммы> [<параметры>]. Как и процедура, функция построена точно так же, но результатом работы функции является только одно возвращаемое значение.

Общая структура описания функции следующая:

Function <имя_функции> [(<аргументы>)] [As <Тип>] <операторы> 
<имя_функции> = <выражение> End Function

С помощью оператора присваивания выполняется вызов функции:

<переменная> = <имя_функции> {(<аргументы>)].

Принципы модульного программирования Windows-приложения в среде проектирования Visual Basic выражено в двух сторонах.

1. Разбивка программного кода на отдельные сжатые модули.

В файле модуля формы (frm) содержится программный код, который относится к объектам и форме этой формы. В стандартном модуле (bas) содержатся программные коды, использующиеся не в одной, а в нескольких формах, и возможно, даже в нескольких проектах.

2. Разбиение программного кода уже внутри модуля на отдельные части — процедуры.

Процедуры в Visual Basic делятся на функции и подпрограммы. В свою очередь подпрограммы разделяются на общие процедуры обработки событий. В ответ на какое-либо событие начинают работать процедуры обработки, к примеру, нажатие кнопки в экранной форме. Общие процедуры начинают работать только после вызова из какого-нибудь места программы. После выполнения этой процедуры происходит автовозврат в то место программы, откуда эта процедура была вызвана.

Общая процедура может входить в состав стандартного модуля (в файл bas) или в состав модуля экранной формы (в файл frm).

В VB есть 3 вида сферы определения, которые характеризуют доступность переменной:

  • контейнера: переменная доступна только в в текущем модуле, форме, либо классе;
  • локальная: переменная доступна только в текущей процедуре;
  • глобальная: переменная доступна во всем проекте. Переменные, которые определяются внутри функции, либо процедуры, называются локальными. Доступные только внутри данной процедуры. Поэтому при использовании разными процедурами переменных с одинаковым именем не возникает конфликтов. Во время выхода из процедуры все локальные переменные сразу же удаляются из памяти, а при следующем вызове данной процедуры переменные создаются вновь.

С помощью оператора Dim определяются переменные контейнера в секции (General) (Declarations), доступные только внутри соответствующего контейнера, т, е. модуля, формы или класса.

В секции модуля (General) (Declaratoins) определяются глобальные переменные. При этом используется оператор Public, вместо оператора Dim. Во всех процедурах и модулях проекта доступны глобальные переменные.

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

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

Объявление переменной статической производится оператором:

Static <Имя_переменной> [As <Тип_переменной>]

Следует записать ключевое слово Static в заголовке процедуры, чтобы объявить статическими все локальные переменные процедуры.

Полное описание общей процедуры выглядит так:

<ОбластьВидимости>] [Static] Sub <имяПроцедуры> 

(<Списокпараметров>) 

<Операторы> 

End Sub

Область видимости - это одного из ключевых слов Private или Public. Устанавливающие к какому классу принадлежит процедура: к классу глобальных или локальных процедур. Процедура является глобальной (Public), если она видна из других модулей, а процедура (Private) локальной, если видна исключительно внутри данного модуля и не может быть вызвана из других.

О статусе переменных, объявленных внутри этой процедуры, т.е. локаных переменных говорит отсутствие или наличие ключевого слова Static. При наличии данного слова локальньные переменные будут сохранять свои значения между последовательными вызовами этой процедуры, а при отсутствии слова Static - не будут.

В процедуре обработки события набор параметров зависит от события и никак не может быть изменен самим разработчиком.

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

В VB параметры могут передаваться двумя способами:

  • как ссылки (ByRef);
  • как значение (ByVal).

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

Вообще, параметры в Visual Basic передаются по ссылке, но также возможно перед параметром в заголовке процедуры указывать явно ключевое слово ByRef. Например:

Sub pr1(ByRef n As String)

При передаче параметра по значению в Visual Basic передается копия содержимой переменной вместо ее адреса в памяти, и процедура или функция не может напрямую модифицировать исходное значение. Перед параметром обязательно должно указываться ключевое слово ByVal. Например, Function fkl (ByVal k As String) As Boolean.

ЗАКЛЮЧЕНИЕ

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

Для достижения цели я решал следующие задачи:

1) Рассмотрел особенности и произвел квалификацию языков программирования высокого уровня.

2) Обосновал выбор языка BASIC для дальнейшего исследования.

3) Рассмотрел основные принципы использования процедур, функции и подпрограмм, а также создания пользовательского меню средствами языка высокого уровня BASIC.

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

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

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

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

Этот язык выбран потому, что он достаточно прост и его можно легко установить на компьютере. Существует несколько видов данного языка. Это GW-Basic, TurboBasic, Qbasic и так далее. Работа с этими версиями очень похожи друг на друга принципами построения, базовыми наборами операторов и конструкциями. Поэтому, изучив один вариант, легко перейти к другому.

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

Во четвертой главе курсовой работы были рассмотрены основные принципы использования подпрограмм – процедур и функций в алгоритмическом языке Visual Basic. Также затронута смежная тема использование модулей для лучшей организации блочного использования процедур и функций. Приведены примеры программной реализации описанных структур.

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

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

Список использованных источников