Языки программирования высокого уровня яву

Языки программирования высокого уровня яву

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

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

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

Примеры: C++, Visual Basic, Python, Perl, Delphi (Pascal), строковых типов, объектов, операций файлового ввода-вывода и т. п.

Первым языком программирования высокого уровня считается компьютерный язык Plankalkül разработанный немецким инженером Конрадом Цузе ещё в период 1942—1946 гг. Однако, широкое применение высокоуровневых языков началось с возникновением Фортрана и созданием компилятора для этого языка (1957).

Читайте также:  Программирование python программа внеурочной деятельности

Переносимость программ

Распространено мнение, что программы на языках высокого уровня можно написать один раз и потом использовать на компьютере любого типа. В действительности же это верно только для тех программ, которые мало взаимодействуют с операционной системой, например, выполняют какие-либо вычисления или обработку данных. Большинство же интерактивных (а тем более мультимедийных) программ обращаются к системным вызовам, которые сильно различаются в зависимости от операционной системы. Например, для отображения графики на экране компьютера программы под Microsoft Windows используют функции Windows API, которые недоступны в системах, поддерживающих стандарт программный интерфейс X-сервера.

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

Новые тенденции

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

См. также

Ссылки

Wikimedia Foundation . 2010 .

Источник

Программирование на языке высокого уровня

Даются методические указания к выполнению лабораторных работ, которые предназначены для выработки навыков алгоритмизации и структурного программирования на языках С/С++.

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

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

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

 Санкт-Петербургский государственный университет аэрокосмического приборостроения, 2009

Подписано к печати Формат 60х84 1/16. Бумага тип. №3

Печать офсетная. Усл. печ. л. Уч.-изд. л.

Редакционно-издательский отдел

Отдел оперативной полиграфии СПбГУАП

190000, Санкт-Петербург, ул. Б. Морская, 67

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

  1. Представление данных разных типов и выделение для них места в оперативной памяти.
  2. Ввод данных, то есть чтение информации, например, с клавиатуры или внешних носителей данных.
  3. Вывод результатов (промежуточных и выходных) для пользователя либо запись на внешний носитель данных.
  4. Последовательное выполнение операций и команд по обработке данных (для реализации линейных процессов).
  5. Выполнение операций и команд по заданному условию для разветвления вычислений (для реализации ветвящихся процессов).
  6. Повторное выполнение команд по заданному условию (для реализации циклических процессов).
  7. Выделение группы команд в поименованный программный модуль (подпрограмму) и обращение к нему из программы и других подпрограмм (для реализации модульного принципа программирования).

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

Язык С (читается СИ) был создан Денисом Ритчи в начале 1970-х в США как язык программирования системных и прикладных программ для профессиональных программистов. В нем реализован компромисс между машинно-ориентированным языком ассемблера (прямой доступ к ячейкам памяти и манипулирование битами) и процедурно-ориентированным языком, который включает все управляющие конструкции структурного программирования. Такие свойства языка С, как лаконичность, мощность, гибкость, предоставляют программисту возможность создавать большие структурированные программы любой сложности и назначения. Однако в отличие от Паскаля, язык С не является строго типизированным, что не гарантирует надежности программ. Ответственность за надежность программного продукта ложится на программиста, что предъявляет высокие требования к его квалификации. Поэтому программист должен хорошо знать особенности языка, чтобы со знанием дела его использовать.

В начале 1980-х годов Бьерн Страуструп (США) разработал новый язык С++, который, как видно из его названия, является наследником языка С. С++ является надмножеством над С и использует все его возможности. Новизна С++ состоит в том, что он впитал в себя идеи объектно-ориентированного программирования (ООП) таких языков, как Симула 67. В типичных языках структурного программирования таких, как С или Паскаль, данные и обрабатывающие их функции разделены. В языках ООП появились понятия объекта и класса объектов. Класс представляет собой новый обобщенный тип объектов, который содержит единую совокупность данных и функций (методов) их обработки для схожих объектов. Вместе с другими идеями ООП представляет собой технологию программирования, позволяющую формировать более адекватные модели объектов реального мира. С++ расширяет существующие конструкции языка С. Программы на С могут компилироваться в среде С++, но не наоборот. Появляются новые средства для ввода-вывода данных и известных в С операций, а также совсем новые конструкции и правила организации про­грамм для реализации концепций ООП. Нередко алгоритмы методов, описывающих поведение объектов настолько сложны, что требуют использования всех возможностей структурного программирования. Разработка программного обеспечения ЭВМ в настоящее время осу­ществляется с использованием двух основных технологий – структурного (процедурного) программирования и объектно-ориентированного программиро­вания. Таким образом, опытным программистам необхо­димо знать обе технологии программирования и уметь ими пользоваться.

Концепции структурного программирования

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

  1. Постановка задачи – формулирование задачи и целей ее решения на естественном языке и установление критериев решения задачи. Результат этапа – техническое задание на разработку программного обеспечения.
  2. Формализация задачи с использованием математического аппарата и по­лучение ее абстрактной математической модели в виде формул и уравне­ний.
  3. Выбор численного метода из возможных вариантов с учетом требований по времени и точности решения и занимаемого объема памяти ЭВМ.
  4. Алгоритмизация – построение общего плана решения, т. е. алгоритма за­дачи в виде логической последовательности этапов (шагов, действий, операций), приводящих от исходных данных к искомому результату за ко­нечное время на языке понятном человеку.
  5. Программирование – перевод алгоритма задачи на язык ЭВМ (систему команд), т.е. кодирование алгоритма. Процесс разработки программы де­лится на следующие этапы: 1) запись алгоритма на ЯВУ в виде исходного файла в памяти (например, prog1.c); 2) компиляция и редактирование свя­зей (объектный файл – prog1.obj); 3) загрузка программы в оперативную память (исполняемый файл – prog1.exe); 4) исполнение программы; 5) получение результатов программы.
  6. Отладка программы – поиск и исправление ошибок в программе. Этот процесс разбивается на два этапа: 1) синтаксическая отладка – исправле­ние формальных ошибок, связанных с нарушением норм языка програм­мирования, с помощью ЭВМ; 2) семантическая отладка – исправление логических (смысловых) ошибок с применением специальных тестовых данных.
  7. Исполнение (эксплуатация) программы с любыми допустимыми данными и получение результатов решения задачи.
  8. Интерпретация результатов и поддержка программы в процессе эксплуа­тации – изменение программы в соответствии с требованиями пользова­телей, а также исправление ошибок, выявленных в процессе ее эксплуата­ции.

Существование программы можно разделить на три периода: 1) разработка (этапы 1– 4); 2) реализация (этапы 5, 6); 3) сопровождение (этапы 7, 8).

Функциональная декомпозиция.

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

Целесообразно такую задачу разбить на легко решаемые подзадачи, кото­рые в совокупности дают решение исходной задачи. Такой метод решения задач называется функциональной декомпозицией. Для применения этого метода на ЭВМ используется принцип модульного программирования. Каждая подзадача реализуется в виде отдельной подпрограммы (функции, процедуры). Для реше­ния всей задачи создается главная функция, которая вызывает другие функции, передавая им исходные аргументы и получая промежуточные результаты.

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

Для структурного программирования характерно то, что данные и методы их обработки (функции, процедуры) отделены друг от друга. Данные рассматриваются как пассивные элементы, обрабатываемые функциями.

Источник

Оцените статью