Warning: session_name(): Cannot change session name when session is active in /home/stalko/rodina-ru.com/docs/dokuwiki/inc/init.php on line 231

Warning: session_set_cookie_params(): Cannot change session cookie parameters when session is active in /home/stalko/rodina-ru.com/docs/dokuwiki/inc/init.php on line 232
======Высокоуровневый язык программирования====== **Высокоуровневый язык программирования** — [[язык-программирования|язык программирования]], разработанный для быстроты и удобства использования [[программист|программистом]]. Основная черта высокоуровневых языков — это [[абстракция]], то есть введение смысловых конструкций, кратко описывающих такие [[структура-данных|структуры данных]] и [[подпрограмма|операции над ними]], описания которых на [[машинный-код|машинном коде]] (или другом [[низкоуровневый-язык-программирования|низкоуровневом языке программирования]]) очень длинны и сложны для понимания. Высокоуровневые языки программирования были разработаны для платформенной независимости сути алгоритмов. Зависимость от платформы перекладывается на инструментальные программы — [[транслятор|трансляторы]], компилирующие текст, написанный на языке высокого уровня, в элементарные машинные команды (инструкции). Поэтому, для каждой платформы разрабатывается платформенно-уникальный транслятор для каждого высокоуровневого языка, например, переводящий текст, написанный на [[delphi-язык-программирования-|Delphi]] в элементарные команды [[микропроцессор|микропроцессоров]] семейства [[x86]]. Так, высокоуровневые языки стремятся не только облегчить решение сложных программных задач, но и упростить [[портирование-программного-обеспечения|портирование программного обеспечения]]. Использование разнообразных [[транслятор|трансляторов]] и [[интерпретатор|интерпретаторов]] обеспечивает связь [[компьютерная-программа|программ]], написанных при помощи языков высокого уровня, с различными [[операционная-система|операционными системами]] программируемыми устройствами и оборудованием, и, в идеале, не требует модификации [[исходный-код|исходного кода]] (текста, написанного на высокоуровневом языке) для любой платформы. Такого рода оторванность высокоуровневых языков от аппаратной реализации [[компьютер|компьютера]] помимо множества плюсов имеет и минусы. В частности, она не позволяет создавать простые и точные инструкции к используемому оборудованию. Программы, написанные на языках высокого уровня, проще для понимания программистом, но менее эффективны, чем их аналоги, создаваемые при помощи [[низкоуровневый-язык-программирования|низкоуровневых языков]]. Одним из следствий этого стало добавление поддержки того или иного языка низкого уровня ([[язык-ассемблера|язык ассемблера]]) в ряд современных профессиональных высокоуровневых языков программирования. Примеры: [[c++|C++]], [[c-sharp|C#]], [[delphi-язык-программирования-|Delphi]], [[фортран|Fortran]], [[java|Java]], [[javascript|JavaScript]], [[лисп|Лисп]], [[паскаль-язык-программирования-|Паскаль]], [[php|PHP]]. Языкам высокого уровня свойственно умение работать с комплексными структурами данных. В большинстве из них интегрирована поддержка [[строковый-тип|строковых типов]], [[объект-программирование-|объектов]], операций [[файл|файлового]] ввода-вывода и т. п. Первым языком программирования высокого уровня считается [[компьютерный-язык|компьютерный язык]] [[планкалкюль|Plankalkül]], разработанный немецким инженером [[цузе-конрад|Конрадом Цузе]] ещё в период [[1942]]—[[1946-год|1946 годах]]. Однако транслятора для него не существовало до 2000 года. Первым в мире транслятором языка высокого уровня является ПП (Программирующая Программа), он же ПП-1, успешно испытанный в 1954 году. Транслятор ПП-2 (1955 год, 4-й в мире транслятор) уже был оптимизирующим и содержал собственный загрузчик и отладчик, библиотеку стандартных процедур, а транслятор ПП для ЭВМ Стрела-4 уже содержал и компоновщик (linker) из модулей. Однако, широкое применение высокоуровневых языков началось с возникновением [[фортран|Фортрана]] и созданием [[компилятор|компилятора]] для этого языка ([[1957]]). На сегодняшний момент по версии компании TIOBE Software лидирует язык программирования [[javascript|JavaScript]]. =====Переносимость программ===== Распространено мнение, что [[компьютерная-программа|программы]] на языках высокого уровня можно написать один раз и потом использовать на [[компьютер|компьютере]] любого типа. В действительности же это верно только для тех программ, которые мало взаимодействуют с [[операционная-система|операционной системой]], например, выполняют какие-либо вычисления или обработку данных. Большинство же интерактивных (а тем более мультимедийных) программ обращаются к [[системный-вызов|системным вызовам]], которые сильно различаются в зависимости от операционной системы. Например, для отображения графики на экране компьютера программы под [[microsoft-windows|Microsoft Windows]] используют функции [[windows-api|Windows API]], которые отличаются от используемых в системах, поддерживающих стандарт [[posix|POSIX]]. Чаще всего для этих целей в них используется [[программный-интерфейс|программный интерфейс]] [[x-сервер|X-сервера]]. К настоящему времени создан целый ряд [[программная-библиотека|программных библиотек]] (например, библиотека [[qt|Qt]] или [[wxwidgets|wxWidgets]]), скрывающих несоответствия системных вызовов различных операционных систем от [[прикладная-программа|прикладных программ]]. Однако такие библиотеки, как правило, не позволяют полностью использовать все возможности конкретных операционных систем. =====Новые тенденции===== Новой тенденцией является появление языков программирования немного более высокого уровня (ультра-высокоуровневых, не путать со [[сверхвысокоуровневый-язык-программирования|сверхвысокоуровневыми]]). Такого рода языки характеризуются наличием дополнительных структур и объектов, ориентированных на прикладное использование. Прикладные объекты, в свою очередь, требуют минимальной настройки в виде параметров и моментально готовы к использованию. Использование ультра-высокоуровневых языков программирования снижает временные затраты на разработку программного обеспечения и повышает качество конечного продукта за счет, опять-таки, уменьшения объёма исходных кодов. =====См. также===== * [[сверхвысокоуровневый-язык-программирования|Сверхвысокоуровневый язык программирования]] * [[низкоуровневый-язык-программирования|Низкоуровневый язык программирования]] * [[метапрограммирование|Метапрограммирование]] * [[псевдокод-язык-описания-алгоритмов-|Псевдокод (язык описания алгоритмов)]] =====Ссылки===== * [[http://c2.com/cgi/wiki?HighLevelLanguage|http://c2.com/cgi/wiki?HighLevelLanguage]] - The [[wikiwikiweb|WikiWikiWeb]]'s article on high-level programming languages {{tag>"Высокоуровневые языки программирования"}}