Софт-Портал

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

Рейтинг: 4.2/5.0 (866 проголосовавших)

Категория: Windows

Описание

Уровни языков программирования - Студопедия

Уровни языков программирования

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

Назначение языков программирования

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

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

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

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

1) интерпретаторы – обрабатывают текст непосредственно во время написания программы, т.е. каждую строку по отдельности;

2) компиляторы – преобразуют весь текст программы одновременно.

Работа программы состоит в обработке данныхконстант и переменных. Действия над константами и переменными определяют операторы. Оператор являетсяинструкцией языка.

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

Различают уровни (по отношению к естественному, человеческому) языков программирования:

- низкого уровня – машинные языки;

- языки ассемблера – близки к машинному;

- языки высокого уровня – приближены к человеку.

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

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

Пример: Для представления машинного языка используем DOS программу DEBUG — специальная программа, входящая в состав утилит MS-DOS, для ввода и пошагового выполнения программ, написанных на машинном языке или с помощью команд ассемблера (рис. 3.16).

Рисунок 3.16 – Просмотр содержимого ячеек памяти в окне программы DEBUG

Текст программы, представленной в шестнадцатеричном формате:

Трудности программирования уменьшаются при использовании языка ассемблера. В этом языке вместо кодовых комбинаций применя­ется мнемоническая форма записи операций (мнемоники), выполняемых в микропро­цессоре. Такой мнемонической записью (в виде сочетания букв, взятых из соответствующих английских слов: MOV – перемещение, ADD – сложение, SUBB – вычитание) представляют вид выполняемой операции, операнды и адреса. Каждой команде на языке ассемблера соответствует команда на языке кодовых комбинаций.

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

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

Язык ассемблера (так же, как и язык кодовых комбинаций) индиви­дуален для каждого типа микропроцессора и микроконтроллера.

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

Простейшим языком программирования высокого уровня является BASIC («Beginner's All-purpose Symbolic Instruction Code» - универсальный код символических инструкций для начинающих), созданный в 1964 году и до сих пор широко применяемый.

Для программирования в машинных кодах и кодах Ассемблера необходимо досконально знать архитектуру процессора (микроконтроллера), набор команд, владеть хотя бы основами программирования. Для написания программ на языке высокого уровня достаточно знать основы программирования. Поэтому языки Ассемблера постепенно вытесняются языками высокого уровня: например ассемблер для микроконтроллеров заменяется языком Си.

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

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

  • скачать
  • скачать
  • Другие статьи, обзоры программ, новости

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

    Название работы: Программирование. Языки программирования низкого и высокого уровней

    Предметная область: Информатика, кибернетика и программирование

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

    Дата добавления: 2015-01-04

    Размер файла: 25.55 KB

    Работу скачали: 5 чел.

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

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

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

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

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

    Пример машинного кода и представления его на ассемблере

    Трансляторы делятся на:

    компиляторы - превращают текст программы в машинный код, который можно сохранить и затем использовать уже без компилятора (примером являются исполняемые файлы с расширением *. exe).

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

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

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

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

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

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

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

    Ассемблер - язык низкого уровня, что широко применяется до сих пор.

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

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

    К языкам программирования высокого уровня относятся:

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

    Языки программирования (7)

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

    Язык программирования – формальная знаковая система, предназначенная для описания алгоритмов в форме, которая удобна для исполнителя (например, ЭВМ, т.е. компьютера).

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

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

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

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

    Эти спецификации обычно включают в себя описание:

    типов и структур данных;

    операционную семантику (алгоритм вычисления конструкций языка);

    семантические конструкции языка;

    библиотеки примитивов (например, команды ввода-вывода);

    философии, назначения и возможностей языка.

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

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

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

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

    Низкоуровневым языком является язык ассемблера (от английского assembler - сборщик) - названия транслятора (компилятора) c языка ассемблера. Язык ассемблера, часто для краткости неверно называют "ассемблером".

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

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

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

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

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

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

    Наиболее распространёнными языками высокого уровня в настоящее время являются С++, Visual Basic, Delphi, Java, Python, Ruby, Perl, PHP.

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

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

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

    Среда визуального программирования Delphi

    Бурное развитие вычислительной техники, потребность в эффективных средствах разработки программного обеспечения и языках программирования привели к появлению систем программирования, ориентированных на так называемую "быструю разработку" - RAD-систем (Rapid Application Development).

    Среди таких систем быстрой разработки приложений можно выделить Borland Delphi. Borland C Builder и Microsoft Visual Basic. В их основе лежит технология визуального проектирования и событийного программирования, суть которой заключается в том, что среда разработки берет на себя большую часть рутинной работы, оставляя программисту работу по конструированию диалоговых окон и функций обработки событий.

    Delphi – это среда быстрой разработки, в которой в качестве языка программирования используется язык объектно-ориентированный язык Object Pascal .

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

    Современный язык программирования высокого уровня: примеры и сравнения

    Современный язык программирования высокого уровня: примеры и сравнения

    Написание большинства современных компьютерных программ осуществляется при задействовании языков высокого уровня. Примечательно, что многие из них были разработаны еще в 60 и 70-х годах, но актуальны до сих пор. Какие еще факты о высокоуровневых языках мы можем отметить? Каковы наиболее распространенные разновидности соответствующих решений?

    Сущность высокоуровневых языков написания программ

    Язык программирования высокого уровня — инструмент, относящийся к категории машинно-независимых. Что это означает? Дело в том, что языки программирования делятся на несколько категорий.

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

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

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

    Трансляторы

    Важнейшие элементы, что входят в языки программирования высокого уровня, — трансляторы. Их функция может быть разной. В числе ключевых областей применения трансляторов — «перевод» команд, формируемых на языке программирования высокого уровня, в машинный код, понятный конкретному аппаратному компоненту ПК, например, процессору. Трансляторы, выполняющие данную функцию, именуются также компиляторами. Есть другая разновидность соответствующих компонентов — интерпретаторы. Они предназначены, в свою очередь, для «перевода» высокоуровневых команд в те, что понятны операционной системе или какой-либо программе.

    Классификация высокоуровневых языков

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

    - процедурно-ориентированные (задействуются в качестве инструмента при обработке информации на любом этапе вычислений);

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

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

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

    Процедурно-ориентированные языки

    К таковым можно отнести Фортран. Он считается первым языком программирования высокого уровня, созданным для широкого применения. Характеризуется простой структурой. К процедурно-ориентированным языкам также относится Бейсик. Считается одним из самых часто используемых при обучении программированию. Пример другого процедурно-ориентированного языка — СИ. Изначально он создавался для ОС UNIX. На его основе впоследствии был создан язык C++, дополненный инструментами объектно-ориентированного программирования. Еще один язык, относящийся к рассматриваемой категории — Паскаль. Часто также задействуется при обучении программированию. Возможности данного языка позволяют его использовать как очень мощный инструмент разработки профессиональных видов ПО.

    Проблемно-ориентированные языки

    К таковым можно отнести Лисп, Пролог. Первый язык был разработан в 1962 году — спустя несколько лет после создания Фортрана. Рассматривается, таким образом, как второй в истории. Активно задействовался в качестве инструмента работы программистов со строками символов. На практике Лисп использовался в системах, классифицируемых как экспертные, а также те, что предназначались для аналитических вычислений. Пролог нашел широкое применение в области логического программирования. На практике чаще всего задействуется в управлении алгоритмами искусственного интеллекта в соответствующих системах.

    Объектно-ориентированные языки

    Изучим теперь примеры языков программирования высокого уровня, которые относятся к категории объектно-ориентированных. В числе таковых — Visual Basic, Delphi, Visual Fortran, отмеченный выше C++, а также Prolog ++. Фактически все они в своей основе содержат процедурно-ориентированные языки. Однако предполагается существенное их дополнение визуальными элементами управления с целью последующего освоения необходимых алгоритмов разработчиками, привыкшими к другим инструментам. Так, первый язык программирования высокого уровня — Фортран — может быть в оперативные сроки изучен IT-специалистами посредством возможностей Visual Fortran. Аналогичным методом можно быстро освоить Бейсик или Пролог.

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

    Фортран и Лисп — первый и второй высокоуровневые языки

    Изучим подробнее то, как появился первый язык программирования высокого уровня — Фортран, а также Лисп, считающийся вторым. В 1954 году разработчики из компании IBM, возглавляемые Джоном Бэкусом, создали язык, посредством которого программисты получили возможность значительно облегчить взаимодействие с ПК, которое до того момента осуществлялось посредством машинных команд либо ассемблера. Он получил название Fortran и вскоре стал известен и в СССР под русифицированным наименованием. Фортран стал популярным инструментом для научных вычислений.

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

    Примером достижения практических результатов в области развития концепций, заложенных в Фортран, можно считать создание Лисп. Данный язык был разработан в 1958 году, однако, широкую известность он приобрел несколько позже — в 1960-м. Лисп был разработан Джоном Маккарти и опубликован в одном из популярных журналов для IT-специалистов. Основное предназначение рассматриваемого языка — обработка списков. Лисп стал популярен в среде разработчиков систем искусственного интеллекта. На его основе были созданы такие языки, как Planner, Scheme, а также Common Lisp. Также Лисп оказал значительное влияние на многие современные инструменты разработки ПО. Структура языков программирования высокого уровня, популярных сегодня, в значительной степени базируется на алгоритмах Фортран и Лисп.

    Интересно будет, однако, рассмотреть иные подходы к классификации рассматриваемых инструментов разработки средств ПО.

    Универсальные высокоуровневые языки

    Так, современные эксперты выделяют универсальные высокоуровневые языки. К ним относятся, в частности, те, что были разработаны в 60-е годы. Ключевые их характеристики:

    - ориентация на широкий спектр задач (прежде всего, относящихся к вычислительным);

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

    - значимость не только для своего времени, но и для современного этапа развития компьютерной техники;

    - поддержка в соответствующих языках императивной методологии.

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

    Уникальные языки

    Некоторые IT-эксперты выделяют в самостоятельную категорию «уникальные языки». В числе таковых: APL, Cobol, Forth, SETL, а также CLU. Какова их специфика?

    Важнейший аспект APL — задействование массивов (векторов и матриц) в качестве ключевого структурного типа. Специфика языка Cobol — в ориентированности на коммерческую сферу. Так, его целесообразно задействовать при решении задач, связанных со стандартизированным форматом представления результатов. Язык Forth характеризуется использованием постфиксной записи программ, а также задействованием стековой нотации. В языке SETL применяются совокупности значений в качестве одного из ключевых типов данных. Языком программирования высокого уровня является также CLU. Его основная особенность — задействование концепции работы с абстрактными типами данных. Многие IT-специалисты видят логичным появление новых решений, базирующихся на уникальных языках — таких как, например, Object-Oriented Cobol.

    Средства параллельного программирования

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

    - алгоритмов работы с процессами.

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

    - дистанционный вызов процедур;

    - транзакции, относящиеся к категории атомарных.

    К языкам рассматриваемого типа относятся Modula-2, BLISS, Concurrent Pascal, DP, Argus.

    Семейство языков C

    Выше мы рассмотрели в качестве примера языка высокоуровневого программирования такое решение, как C. По сути дела, оно формирует целое семейство. Языки, принадлежащие к нему, являются частными конструкциями C. Так, его дополнение различными объектно-ориентированными компонентами привело к разработке C++. После существенной фильтрации ряда конструкций C появился язык Java. Можно отметить, что Java создавался во многом под влиянием концепций проекта Oberon, которым руководит Никлаус Вирт, создатель языка Паскаль. Относится ли к высокоуровневым JavaScript? Безусловно, да, несмотря на узость применения — в качестве инструмента разработки веб-страниц. Но к языкам программирования высокого уровня не относятся, в частности, HTML, XML и SGML. Они классифицируются как инструменты разметки гипертекста.

    Семейство языков Pascal

    Языки программирования высокого уровня Pascal также образуют отдельное семейство. На базе Паскаль был, собственно, создан Oberon, классифицируемый как язык объектно-ориентированного типа. Ключевая особенность Oberon — в возможности обеспечения безопасности типов. Не считая Oberon, к языкам семейства Pascal можно отнести Modula-2, а также Component Pascal.

    Семейство языков Ada

    Основополагающий в соответствующей категории языков — заказанный под нужды Министерства обороны США Ada. Он был создан в конце 70-х — начале 80-х годов. Характеризуется большим количеством функций, возможностей, универсальностью. Семейство языков Ada включает такие решения, как Cedar, Modula 3.

    Семейство языков Simula

    Язык Simula распространен в отраслях программирования, связанных с имитационным моделированием. Специфика соответствующих решений — в задействовании специфического ядра. Его использование позволяет применять различные расширения, адаптированные к тем или иным сферам применения. На основе Simula были созданы объектно-ориентированный язык Smalltalk, а также BETA, характеризующийся способностью комбинировать в рамках единой абстракции алгоритмы, отражающие работу с данными, процедурами, а также управление. Объекты BETA могут рассматриваться в различном контексте, например, в качестве переменных, функций или параллельных систем.

    Добавить комментарий

    Язык высокого уровня для написания программ - 22 Мая 2016 - Цифровые системы и технологии

    Цифровые системы и технологии

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

    var number, count: integer

    for count = 1 to 10 do

    Даже если читатель не знаком с языком Pascal, работа программы совершенно понятна .

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

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

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

    1. В компьютер загружается текстовый редактор.
    2. Исходная программа вводится с клавиатуры или загружается с диска.
    3. Полученный исходный файл сохраняется на жестком диске.
    4. Компилятор загружается с диска и затем запускается на выполнение.
    5. Исходный файл загружается с жесткого диска.
    6. Начинается процесс компиляции. Если обнаруживаются какие-либо ошибки, необходимо вернуться к шагу 1.
    7. Создается объектная программа, которая может быть сохранена на жестком диске и/или запущена на выполнение. При обнаружении каких-либо ошибок при выполнении необхо-* димо вернуться к шагу 1.

    Язык интерпретатора намного проще в применении, и для многих прикладных задач потеря скорости не является существенной. Как правило, BASIC является интерпретируемым языком, a Pascal, С и FORTRAN — компилируемыми.

    Языки программирования 3-го поколения на сайте Игоря Гаршина

    Ранние языки высокого уровня (ЯВУ)

    С середины 1950-х начали появляться языки третьего поколения (3GL ), такие как Фортран. Лисп и Кобол. а в конце 1950-х годов появился Алгол.

    Языки программирования этого типа более абстрактны (их еще называют «языками высокого уровня», сокращённо - ЯВУ ) и универсальны, не имеют жесткой зависимости от конкретной аппаратной платформы и используемых на ней машинных команд. Программа на языке высокого уровня может исполняться (по крайней мере, в теории, на практике обычно имеются ряд специфических версий или диалектов реализации языка) на любой ЭВМ, на которой для этого языка имеется транслятор (инструмент, переводящий программу на язык машины, после чего она может быть выполнена процессором). Разрабатывать программы на таких языках значительно проще и ошибок допускается меньше. Значительно сокращается время разработки программы. Недостатком некоторых языков высокого уровня является большой размер программ в сравнении с программами на языках низкого уровня.

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

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

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

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

    • Обзоры о языках программирования третьего поколения (3GL)
    • Интерпретатор формул ФОРТРАН - нач. 1950-х г.г.
    • Первый функциональный язык АПЛ (APL) - 1957 г.
    • Алгоритмический язык АЛГОЛ - 1958 г.
    • Финансовый обработчик строк Кобол (COBOL) - 1959 г.
    • Интерпретатор BASIC (Бэйсик) - 1963 г.
    • Кентавр-язык ПЛ/1 (PL/1) - 1965 г.
    • Его Величество язык Си - 1972 г.
    • Структурированный язык Паскаль - 1973 г.
    • Стековая машина Форт (Forth) - 1977 г.
    • Кибернетический суперпаскаль Ада - 1975-79 г.
    • Модульный язык системного программирования Модула - 1980 г.

    На основе многих языков третьего поколения были созданы их объектно-ориентированные версии.

    Обзоры о языках программирования третьего поколения (3GL) Интерпретатор формул ФОРТРАН - нач. 1950-х г.г.

    Предок Бэйсика. Имеет солидную библиотеку математических и других формул. Версии: Фортран-77 и Фортран-90.

    Фортран (FORTRAN - formula translator) - самый первый из ЯВУ (разработан Бэкусом в начале 1950-х годов) и широко распространенный язык, особенно среди пользователей, которые занимаются численным моделированием, что объясняется несколькими причинами:

    1. существованием огромных фондов прикладных программ на Фортране, накопленных за эти годы, а также наличием огромного количества программистов, эффективно использующих этот язык;
    2. наличием эффективных трансляторов Фортрана на всех типах ЭВМ, причем версии для различных машин достаточно стандартизированы и перенос программ с машины на машину обычно не составляет больших трудностей;
    3. изначальной направленностью Фортрана на физико-математические и технические приложения; в частности, это проявилось в том, что в течение долгого времени он оставался единственным языком со встроенным комплексным типом переменных и большим набором встроенных функций для работы с такими переменными.
    • .
    Первый функциональный язык АПЛ (APL) - 1957 г.

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

    Язык был разработан преподавателем Гарвардского университета Кеном Айверсоном. как система обозначений для описания вычислений. В 1957 выходит его книга «A Program Language», в которой эта нотация была описана. По названию этой книги язык и получил название APL. В 1960 Айверсон продолжает работу над APL в IBM. Здесь этот язык использовался для описания машинной архитектуры. Первой попыткой реализации APL был написанный для IBM 7090 на Фортране в 1965 году интерпретатор IVSYS. Однако, в нём тогда ещё не использовался набор APL-символов - они заменялись ключевыми словами на английском языке.

    Компактный уникум АПЛ (APL) не стал плодотворным на потомков, как многие ЯВУ 50-х и 60-х именно из-за своего преимущества - компактной (а, следовательно, "нечеловеческой") нотации (это похоже с историей другого уникума, появившегося через 20 лет - языка-операционки Форт ). Однако, его немногочисленные, но преданные сторонники гордиляться тем, что легко разрабатывают сложные программы.

    Алгоритмический язык АЛГОЛ - 1958 г.

    Предок Паскаля, Модулы, Ады. т.к. имел красивую и плодотворную идею "правильного" структурного программирования.

    Алго?л (англ. Algol от англ. algorithmic — алгоритмический и англ. language — язык) — несколько версий языков программирования, применяемых при составлении программ для решения научно-технических задач на ЭВМ. Разработан комитетом по языку высокого уровня IFIP в 1958—1960 годах (Алгол 58. Алгол 60 ); усовершенствован в 1964—1968 годах (Алгол 68 ). Алгол был популярен в Европе, в том числе в СССР, в то время как сравнимый с ним язык Фортран был распространён в США и Канаде. Оказал заметное влияние на все разработанные позднее императивные языки программирования — особенно на язык Pascal.

    Обычно названием Алгол именуют Алгол 60. в то время как Алгол 68 рассматривается как самостоятельный язык. (Википедия)

    Финансовый обработчик строк Кобол (COBOL) - 1959 г.

    Использование Кобола калечит ум. Его преподавание, следовательно, должно рассматриваться как уголовное преступление. (Дейкстра )

    Кобо?л (COBOL - COmmon Business Oriented Language) — один из старейших языков программирования (первая версия в 1959), предназначенный, в первую очередь, для разработки коммерческих приложений. В свежий стандарт языка 2002 года в Кобол добавлены средства объектно-ориентированного программирования [!?] и другие современные языковые конструкции.

    Кобол обычно критикуется за многословность и громоздкость, поскольку одной из целей создателей языка было максимально приблизить конструкции к английскому языку. До сих пор Кобол считается языком программирования, на котором было написано больше всего строк кода. Например, к 1997 году активно использовалось около 240 миллиардов строк кода на Коболе. Около 90 % финансовых транзакций в мире обрабатывается кодом на Коболе, и 75 % коммерческой обработки данных написано на Коболе. Общая стоимость используемого в настоящее время коболовского кода оценивается в 2 триллиона долларов США. И до сих пор ежегодно пишутся миллионы новых строк кода на Коболе.

    В то же время, Кобол имел прекрасные для своего времени средства для работы со структурами данных и файлами. Он стал первым языком, в котором появился тип данных «запись»б что обеспечило ему долгую жизнь в бизнес-приложениях (по крайней мере, в США - см. выше).

    Интерпретатор BASIC (Бэйсик) - 1963 г.

    Практически невозможно научить хорошему стилю программирования студентов, которые раньше имели дело с Бейсиком; в качестве программистов они умственно покалечены без надежды на восстановление. (Edsger Wybe Dijkstra )

    Бейсик (BASIC - Beginner’s All-Purpose Symbolic Instruction Code – “универсальный символический код инструкций для начинающих”). Прямой потомок Фортрана и до сих пор самый популярный язык программирования для персональных компьютеров. В 1963 годe 2 профессора Дартмутского Колледжа Дж. Кемени И Т. Куртс (США), создали этот язык программирования для людей, которые не являются профессиональными программистами, но имеют дело с компьютерами. Авторы намеревались создать простой и удобный язык, содержащий всего несколько ключевых слов, которые можно было бы выучить в течении часа. Идея оказалась удачной. Когда же в середине 70-х годов появились персональные компьютеры, то Basic как нельзя лучше подошел для них, поскольку занимал всего 4КВ памяти. Кроме того, в это же время появился вариант компилятора для микро-ЭВМ QUASIC - быстрый Бейсик, имевший такой же малый размер транслятора и позволявший генерировать исполняемые модули, использовавшие предельную скорость процессора.

    Как и любые преимущества, простота Бейсика оборачивалась, особенно в ранних версиях трудностями структурирования; кроме того, Бейсик не допускал рекурсию – интересный прием, позволяющий составлять эффективные и в то же время короткие программы. В первых версиях Бейсика, в 1960-е, 1970-е годы, вначале каждой строки надо было ставить цифровую метку номера оператора (как в Фортране). В последующих версиях это утомительное занятие было устранено. Был исключено ключевое слово LET (взять) в математических операторах.

    Кентавр-язык ПЛ/1 (PL/1) - 1965 г.

    Попытка скрестить всё лучшее от Фортрана до Алгола. Не прижился и практически и не дал идейных всходов теоретически.

    Язык PL/1 [Program Language ?] разработан в 1964-1965 годах фирмой IBM. PL/1 относится к числу универсальных языков, т. е. позволяет решать задачи из разных областей: численные расчеты, текстовая обработка, экономические задачи и т. д. По своим возможностям он перекрывает такие языки, как Фортран, Алгол-60 (созданный для численных расчетов), Кобол (для экономических задач), хотя в силу ряда причин вытеснить эти языки PL/1 не смог.

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

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

    Его Величество язык Си - 1972 г.

    Все технологии смертны, только язык C вечен!

    Сотрудник фирмы Bell Labs Денис Ритчи создал язык Си в 1972 году во время совместной работы с Кеном Томпсоном. как инструментальное средство для реализации операционной системы Unix [для написания Юникса]. Следует заметить, что Ритчи не выдумывал Си из головы – прообразом служил язык Би [B ] разработанный Томпсоном. [А можно было его назвать и Sy (Сай - почти Си), т.к. он был предназначен для системного программирования (system programming).]

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

    На Си можно создавать программы, которые делают все, что пожелаешь. Нет другого такого языка, который бы так же стимулировал к программированию. Создается впечатление, что остальные языки программирования воздвигают искусственные препятствия для творчества, а Си – нет. Использование этого языка позволяет сократить затраты времени на создание работающих программ. Си позволяет программировать быстро, эффективно и предсказуемо. Еще одно преимущество Си заключается в том, что он позволяет использовать все возможности вашей ЭВМ. Этот язык создан программистом для использования другими программистами, чего о других языках программирования сказать нельзя.

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

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

    Структурированный язык Паскаль - 1973 г.

    Язык программирования Паскаль был разработан профессором кафедры вычислительной техники Швейцарского Федерального института технологии Николасом Виртом в 1968 году как альтернатива существующим и все усложняющимся языкам программирования, таким, как PL/1, Algol, Fortran. Интенсивное развитие Паскаля привело к появлению уже в 1973 году его стандарта в виде пересмотренного сообщения, а число трансляторов с этого языка в 1979 году перевалило за 80.

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

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

    Стековая машина Форт (Forth) - 1977 г. Кибернетический суперпаскаль Ада - 1975-79 г.

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

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

    Язык Ада возник в результате международного конкурса языковых проектов проходящего в 1978-1979 годах. Участники должны были удовлетворить довольно жестким, детально разработанным требованиям. Интересно, что все языки, дошедшие до последних туров этого конкурса, были основаны на Паскале. В этой связи Аду можно предварительно охарактеризовать как Паскаль, развитый с учетом перечисленных выше требований. При этом авторы пошли в основном по пути расширения Паскаля новыми элементами. В результате получился существенно более сложный язык.

    Модульный язык системного программирования Модула (1980 г.) и его потомки

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

    Как и множество других языков программирования, Модула подвергалась эволюции, во время которой ее первоначальное название было переделано в имя Модула-2. Одновременно с развитием языка Модула для него создавались новые компиляторы, однако, ни один из них не мог соперничать с лучшими реализациями языков Паскаль и Си, например, разработанных фирмой Борланд. В этот переходный для языка Модула период лучшей считалась реализация фирмы Logitech, которая по своим характеристикам проигрывала Турбо Паскалю и Турбо Си. Только в 1988 году после появления на американском рынке системы Top Speed, Модула-2 заняла достойное место среди процедурных языков, предназначенных для системного программирования.

    Объектно-ориентированные потомки Модулы-2 (Оберон, Модула-3)

    Важно заметить, что Вирт не признавал необходимость объектно-ориентированного программирования и утверждал, что всё можно сделать Модулой. Вроследствии появились языки Модула-3 и Оберон.

    Оберон — язык программирования высокого уровня, разработанный Никлаусом Виртом, для исполнения программ, исполняемых в одноимённой операционной системе, авторами которой являются Никлаус Вирт и Юрг Гуткнехт (1986—1989 годы). Основой для Оберона послужил язык Модула-2. Первоначально систему хотели писать на самой Модуле, но увидели, что её надо доработать и сократить, что и привело к появлению Оберона. Целью проекта было создание с нуля обозримой и надежной операционной системы для персонального компьютера.

    Modula-3 - объектно-ориентированный язык системного программирования [как C++]. Разработка Модулы-3 началась в 1986 году. Морис Уилкс (Maurice Wilkes) написал Никлаусу Вирту некоторые идеи по созданию новой версии Модулы. Уилкс, до этого работавший в DEC, вернулся в Англию и устроился в исследовательский центр Olivetti. Никлаус Вирт в это время был занят разработкой нового языка программирования Oberon, но не отказал Уилксу в помощи. Окончательное описание Модулы-3 было сделано в январе 1989 года. Модула-3 получила распространение преимущественно в академической среде, как язык для обучения программированию, и почти не использовалась в промышленности. Причиной этого могла послужить гибель DEC — основного разработчика языка. В настоящее время техническую поддержку Модулы-3 предоставляет корпорация Elego Software Solutions GmbH.