Перейти к содержимому

Почему языки программирования высокого уровня называют машинно независимыми языками

  • автор:

Почему языки программирования высокого уровня называют машинно независимыми языками

СРЕДСТВА РЕСУРСНОЙ ПОДДЕРЖКИ .

Программное обеспечение ЭВМ. Языки программирования

Языки программирования делятся на два класса — МАШИННО-ЗАВИСИМЫЕ и МАШИННО-НЕЗАВИСИМЫЕ. Под машинно-зависимыми языками понимают языки, алфавит, синтаксис и семантика которых зависят от системы команд процессора конкретно используемой ЭВМ. Машинно-независимые языки — языки свободные от такой зависимости.

Типичным представителем машинно-зависимого языка является язык АССЕМБЛЕРА. Это язык, в котором набору команд процессора поставлены в соответствие мнемонические обозначения команд. Например, на ЭВМ фирмы DEC команда сложения содержимого двух регистров R1 и R2 в двоичном коде имеет вид: 0110010001010010, а на языке ассемблера ADD R1,R2 (СЛОЖИТЬ R1,R2). Таким образом, язык ассемблера освобождает пользователя от записи программы в двоичных кодах. Собственно программа АССЕМБЛЕР представляет собой компилятор, который переводит текст программы в мнемокодах в текст программы в двоичных кодах команд процессора. Отсюда и следует зависимость языка Ассемблера от системы команд процессора конкретной ЭВМ.

В настоящее время используется язык МАКРОАССЕМБЛЕРА, являющийся расширением языка Ассемблера. В этом языке можно назначить обозначение последовательности операторов (МАКРООПРЕДЕЛЕНИЕ). Это обозначение называется МАКРОСОМ. В исходном тексте программы можно указывать только макрос, т.к. при переводе Ассемблером текста макрос заменяется последовательностью операторов из макроопределения. Язык Макроассемблера упрощает запись программы, если в программе много одинаковых фрагментов.

Машинно-независимые языки программирования по назначению и возможностям можно представить следующими группами: УНИВЕРСАЛЬНЫЕ, ПРОЦЕДУРНО-ОРИЕНТИРОВАННЫЕ, ПРОБЛЕМНО-ОРИЕНТИРОВАННЫЕ и ОБЪЕКТНО-ОРИЕНТИРОВАННЫЕ.

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

Процедурно-ориентированные языки предполагают использование последовательности операторов, задающей те или иные действия. Эта последовательность оформляется в виде законченного текста — процедуры (или как теперь часто говорят модуля). К процедурно-ориентированным языкам относятся BASIC, PASCAL, FORTRAN, MODULA и другие (кстати, язык C тоже имеет все черты процедурно-ориентированного языка).

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

В объектно-ориентированных языках первичным является не отношение, а ОБЪЕКТ. Объект объединяет структуру данных и доступные только ему механизмы их изменения. Типичным представителем языка такого тип является язык C++.

ОБ ЭФФЕКТИВНОСТИ ТРАНСЛЯЦИИ.

Любой транслятор (компилятор или интерпретатор) является автоматом перевода текста на некотором языке в соответствующую последовательность команд процессора ЭВМ. От длины и структуры этой последовательности существенно зависит скорость выполнения программы пользователя. Например, программу написанную на каком-либо языке программирования можно перевести на язык команд процессора двумя различными компиляторами К1 и К2. Более эффективным следует считать тот компилятор, после обработки которым исходной программы, последняя выполняется быстрее.

Эффективность транслятора определяется следующим образом. Исходный текст программы пользователя компилируется и определяется длина программы (объем занимаемой памяти) в командах процессора (на рисунке M). Точно такую же программу в командах процессора составляет опытный профессионал-программист. Длина этой программы на рисунке обозначена m. Эффективность транслятора определяется коэффициентом трансляции, который вычисляется как k=M/m. Очевидно, что чем больше коэффициент, тем менее эффективен транслятор. У современных компиляторов коэффициент трансляции лежит в пределах от 1,5 до 2.

КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ И ИХ ОСОБЕННОСТИ Текст научной статьи по специальности «Компьютерные и информационные науки»

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Басов А.С.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Басов А.С.

Языки программирования: классификация, особенности, критерии выбора
ВЫБОР ПЕРВОГО ЯЗЫКА ДЛЯ ОБУЧЕНИЯ ПРОГРАММИРОВАНИЮ
Классификация языков программирования
РАЗВИТИЕ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

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

i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ И ИХ ОСОБЕННОСТИ»

студент 2 курса магистратуры кафедры информатики и вычислительной техники Сибирский государственный университет науки и технологий имени академика М. Ф. Решетнева (Россия, г. Красноярск)

КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

И ИХ ОСОБЕННОСТИ

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

Ключевые слова: языки программирования, классификация языков программирования, информационные технологии.

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

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

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

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

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

• язык PL/1 (NPL) был разработан в 1960-х годах как комбинация лучших особенностей Fortran и Kobol;

• язык Simula, появившийся примерно в это же время, впервые включал поддержку объектно-ориентированного программирования;

• в середине 1970-х годов группа специалистов ввела язык Smalltalk, который уже был полностью объектно-ориентированным;

• между 1969 и 1973 годами был разработан язык Си, который до сих пор популярен и стал основой для многих последующих языков, таких как C++ и Java;

• в 1972 году был создан prologue-самый известный (хотя и не первый, и далеко не единственный) язык логического программирования;

• в 1973 году язык мл реализована расширенная система полиморфной

типизации, что породило типизированных функциональных языков

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

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

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

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

К языкам программирования высокого уровня относятся Fortran (formula translator-был разработан в середине 50 — х годов программистами IBM и в основном используется для программ, выполняющих естественнонаучные и математические вычисления), ALGOL, COBOL (commercial language — использовался в основном для программирования экономических задач), Pascal, basic (был разработан профессорами Дармутского колледжа Джоном Кемени и

Томасом Курцем), C (Dennis Ritch-1972), prologue (язык основан на математической машинной логике) и др.

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

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

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

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

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

• языки третьего поколения: языки общего назначения, используемые для создания прикладных программ любого типа. Например, basic, COBOL, C и Pascal;

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

• языки программирования пятого поколения: декларативные, объектно-ориентированные и визуальные. Например, Prologue, LISP (используется

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

интеллекта), C++, Visual Basic и Delphi.

Языки программирования также можно разделить на процедурные и непроцессуальные. В процедурных языках программа явно описывает выполняемые действия, а результат определяется только тем, как он получен с помощью определенной процедуры, представляющей собой определенную последовательность действий. Среди процедурных языков существуют структурные и операционные языки. В структурных языках один оператор записывает целые алгоритмические структуры: ветви, циклы и т. д. on.in для этой цели используются операционные языки, несколько операций. Широко используются следующие структурные языки: Pascal, C, Ada, PL/1. Операционные системы включают Fortran, basic и Focal.

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

Еще одним классом языков программирования являются объектно-ориентированные языки высокого уровня. Эти языки не описывают детальной последовательности действий для решения задачи, хотя и содержат элементы процедурного программирования. Благодаря богатой они предлагают пользователю решить задачу в удобной форме. Первый объектно-ориентированный язык программирования Симула был создан в 1960 году Nigard и Даля.

Java — это интернет-язык программирования, который позволяет создавать безопасные, портативные, надежные, объектно-ориентированные интерактивные программы.

Язык Java прочно связан с интернетом, потому что первой серьезной программой, написанной на этом языке, был браузер world wide web.

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

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

• назначение разрабатываемого программного обеспечения, т.е.

необходимость в нем будет временная или оно будет использоваться

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

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

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

• возможность сопряжения разрабатываемого программного обеспечения с другими приложениями (пакетами или программами), включая приложения, составленные на иных языках программирования;

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

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

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

Бьянкуцци Ф., Уорден Ш. Пионеры программирования. Диалоги с создателями наиболее популярных языков программирования. Электронный журнал: наука, техника и образование. 2015. № 3 (3). С. 25 — 34.

Вольфенгаген В.Э. Конструкции языков программирования. Приемы описания. // Научный вестник ГосНИИ ГА. 2017. № 16. С. 98-107.

Паронджанов В.Д. Как улучшить работу ума. Алгоритмы без программистов — это очень просто! // Электронный журнал: наука, техника и образование. 2019. № 3 (3). С. 8 — 12.

Почему ЯПВУ являются машинно-независимыми языками программирования?

Пожалуйста, войдите или зарегистрируйтесь для публикации ответа на этот вопрос.

решение вопроса

Связанных вопросов не найдено

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

поделиться знаниями или
запомнить страничку

  • Все категории
  • экономические 43,679
  • гуманитарные 33,657
  • юридические 17,917
  • школьный раздел 612,616
  • разное 16,911

Популярное на сайте:

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

Как научится читать по диагонали? Скорость чтения зависит от скорости восприятия каждого отдельного слова в тексте.

Как быстро и эффективно исправить почерк? Люди часто предполагают, что каллиграфия и почерк являются синонимами, но это не так.

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

  • Обратная связь
  • Правила сайта

почему ЯПВУ являются машинно независимыми языками программирования?

Кто такую глупость сказал? ЯП ВУ _могут_ быть машинно независимыми. Если авторы захотят. А вот ЯП НУ обязательно машинно-зависимые по определению.

tmalikМастер (1253) 8 лет назад
вопрос учебника: D

Капитан Гугл Искусственный Интеллект (146193) Ну вот такие авторы у учебников 🙂 Хотя в основном, это да, машинно-независимые.

правильно сказать кроссплатформенный язык программирования. Она работает на всех девайсах за счет JVM (Java virtual machine )

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

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *