Letysite.ru

IT Новости с интернет пространства
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

Машинно – независимые языки

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

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

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

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

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

Проблемных языков очень много, например:

^ Фортран, Алгол – языки, созданные для решения математических задач;

Simula, Слэнг — для моделирования;

Лисп, Снобол – для работы со списочными структурами.

Об этих языках я расскажу дальше.

Универсальные языки были созданы для широкого круга задач: коммерческих, научных, моделирования и т.д. Первый универсальный язык был разработан фирмой IBM, ставший в последовательности языков Пл/1. Второй по мощности универсальный язык называется Алгол-68. Он позволяет работать с символами, разрядами, числами с фиксированной и плавающей запятой. Пл/1 имеет развитую систему операторов для управления форматами, для работы с полями переменной длины, с данными организованными в сложные структуры, и для эффективного использования каналов связи. Язык учитывает включенные во многие машины возможности прерывания и имеет соответствующие операторы. Предусмотрена возможность параллельного выполнение участков программ.

Программы в ^ Пл/1 компилируются с помощью автоматических процедур. Язык использует многие свойства Фортрана, Алгола, Кобола. Однако он допускает не только динамическое, но и управляемое и статистическое распределения памяти.

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

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

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

Одним из примеров диалоговых языков является ^ Бэйсик.

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

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

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

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

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

MATLAB как язык программирования был разработан Кливом Моулером (англ. Cleve Moler) в конце 1970-х годов, когда он был деканом факультета компьютерных наук в Университете Нью-Мексико. Целью разработки служила задача дать студентам факультета возможность использования программных библиотек Linpack и EISPACKбез необходимости изучения Фортрана. Вскоре новый язык распространился среди других университетов и был с большим интересом встречен учёными, работающими в области прикладной математики. До сих пор в Интернете можно найти версию 1982 года, написанную на Фортране, распространяемую с открытым исходным кодом. Инженер Джон Литтл (англ. John N. (Jack) Little) познакомился с этим языком во время визита Клива Моулера вСтэнфордский университет в 1983 году. Поняв, что новый язык обладает большим коммерческим потенциалом, он объединился с Кливом Моулером и Стивом Бангертом (англ. Steve Bangert). Совместными усилиями они переписали MATLAB на C и основали в 1984 компанию The MathWorks для дальнейшего развития. Эти переписанные на С библиотеки долгое время были известны под именем JACKPAC. Первоначально MATLAB предназначался для проектирования систем управления (основная специальность Джона Литтла), но быстро завоевал популярность во многих других научных и инженерных областях. Он также широко использовался и в образовании, в частности, для преподавания линейной алгебры и численных методов.

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

Программы, написанные на MATLAB, бывают двух типов — функции и скрипты. Функции имеют входные и выходные аргументы, а также собственное рабочее пространство для хранения промежуточных результатов вычислений и переменных. Скрипты же используют общее рабочее пространство. Как скрипты, так и функции не компилируются в машинный код и сохраняются в виде текстовых файлов. Существует также возможность сохранять так называемые pre-parsed программы — функции и скрипты, обработанные в вид, удобный для машинного исполнения. В общем случае такие программы выполняются быстрее обычных, особенно если функция содержит команды построения графиков.

Основной особенностью языка MATLAB является его широкие возможности по работе с матрицами, которые создатели языка выразили в лозунге «думай векторно» (англ. Think vectorized).

Пример кода, являющегося частью функции magic.m, генерирующего магический квадрат M для нечётных значений размера стороны n:

Пример кода, загружающего одномерный массив A значениями массива B в обратном порядке (только если векторA определен, и число его элементов совпадает с числом элементов вектора B):

Читать еще:  Ошибка при выполнении приложения сервера

График sinc-функции, нарисованный с помощью MATLAB

Пример кода, рисующего график sinc-функции:

Пример векторизации кода. Код

ww = repmat (w, [size(b,1) 1]);

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

который делает то же самое.

Статьи к прочтению:

Фиксики — Все серии подряд — Унитаз, микробы. Мультики для детей

Похожие статьи:

Языки программирования Основные понятия. Алфавит. Синтаксис. Семантика Обычный разговорный язык состоит из четырех основных элементов: символов, слов,…

ВВЕДЕНИЕ В рамках данного курсового проекта необходимо реализовать usb сниффер для операционной системы Windows. Usb сниффер – это программа,…

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

Искусственные языки, предназначенные для записи программ, называются языками программирования или алгоритмическими языками. Все языки программирования делятсямашинно-зависимые и машинно-независимые.

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

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

  • языки символического кодирования (мнемокоды);
  • макроязыки.

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

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

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

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

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

При программировании на процедурно-ориентированных языках не требуется детального знания устройства компьютера. Наиболее широко используемыми языками высокого уровня являются БЭЙСИК, ПАСКАЛЬ, СИ.

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

Машинно — независимые языки

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

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

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

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

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

Проблемных языков очень много, например:Фортран, Алгол — языки, созданные для решения математических задач;Simula, Слэнг — для моделирования;Лисп, Снобол — для работы со списочными структурами.

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

Универсальные языки были созданы для широкого круга задач: коммерческих, научных, моделирования и т.д. Первый универсальный язык был разработан фирмой IBM, ставший в последовательности языков Пл/1. Второй по мощности универсальный язык называется Алгол-68. Он позволяет работать с символами, разрядами, числами с фиксированной и плавающей запятой. Пл/1 имеет развитую систему операторов для управления форматами, для работы с полями переменной длины, с данными организованными в сложные структуры, и для эффективного использования каналов связи. Язык учитывает включенные во многие машины возможности прерывания и имеет соответствующие операторы. Предусмотрена возможность параллельного выполнение участков программ.

Диалоговые языки

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

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

Одним из примеров диалоговых языков является Бэйсик.

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

Непроцедурные языки

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

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

5. История языка C++

Язык С (читается «Си») создан в начале 70х годов Дэнисом Ритчи в Bell Telephone Laboratories для ОС UNIX. Предшественником C является язык B («Би»), созданный Кэном Томпсоном, который в свою очередь имеет корни в языке Мартина Ричардсона BCPL. Язык BCPL был создан в 1967 году как язык для написания компиляторов и программного обеспечения операционных систем. Кен Томпсон предусмотрел много возможностей в своем языке B для создания ранних версий операционной системы Unix в Bell Laboratories в 1970 году на компьютере DEC PDP-7. Языки BCPL и B были языками без определения типов данных — каждай элемент данных занимал одно «слово» в памяти, и бремя обработки элемента данных, например, как целого или действительного числа падало на плечи программиста.

Читать еще:  Системная ошибка vcomp110 dll

В 1978 г. Брайн Керниган и Денис Ритчи написали книгу «Язык программирования Си» (издательство Prentice-Hall) которую можно рассматривать как некоторый стандарт языка «K & R». Ее называют белой книгой (Вы можете найти ее в разделе «Книги и учебники»).

Широкое распространение языка C на различных типах компьютеров (иногда называемых аппаратными платформами) привело, к сожалению, ко многим вариациям языка. Они были похожи, но несовместимы друг с другом. Это было серьезной проблемой для разработчиков программ, нуждавшихся в написании совместимых программ, которые можно было бы выполнять на нескольких платформах. Стало ясно, что необходима стандартная версия C. В 1983г. ANSI (Американский Национальный Комитет Стандартов) сформировал технический комитет X3J11 для создания стандарта языка C (чтобы «обеспечить недвусмысленное и машинно-независимое определение языка»). В 1989 стандарт был утвержден. ANSI скооперировался с ISO (Международной Организацией Стандартов), чтобы стандартизовать C в международном масштабе; совместный стандарт был опубликован в 1990 году и назван ANSI/ISO 9899:1990. Этот стандарт усовершенствуется до сих пор и поддерживается большинством фирм разработчиков компиляторов.

С++ был разработан Бьерном Страуструпом. «Я придумал C++, записал его первоначальное определение и выполнил первую реализацию. Я выбрал и сформулировал критерии проектирования C++, разработал его основные возможности и отвечал за судьбу предложений по расширению языка в комитете по стандартизации C++, — пишет автор самого популярного языка программирования. — Язык C++ многим обязан языку C, и язык C остается подмножеством языка C++ (но в C++ устранены несколько серьезных брешей системы типов C). Я также сохранил средства C, которые являются достаточно низкоуровневыми, чтобы справляться с самыми критическими системными задачами. Язык C, в свою очередь многим обязан своему предшественнику, BCPL; кстати, стиль комментариев // был взят в C++ из BCPL. Другим основным источником вдохновения был язык Simula67. Концепция классов (с производными классами и виртуальными функциями) была позаимствована из него. Средства перегрузки операторов и возможность помещения объявлений в любом месте, где может быть записана инструкция, напоминает Algol68.

Название C++ выдумал Рик Масситти. Название указывает на эволюционную природу перехода к нему от C. «++» — это операция приращения в C. Чуть более короткое имя C+ является синтаксической ошибкой; кроме того, оно уже было использовано как имя совсем другого языка. Знатоки семантики C находят, что C++ хуже, чем ++C. Названия D язык не получил, поскольку он является расширением C и в нем не делается попыток исцеляться от проблем путем выбрасывания различных особенностей. Изначально C++ был разработан, чтобы автору и его друзьям не приходилось программировать на ассемблере, C или других современных языках высокого уровня. Основным его предназначением было сделать написание хороших программ более простым и приятным для отдельного программиста. Плана разработки C++ на бумаге никогда не было; проект, документация и реализация двигались одновременно. Разумеется, внешний интерфейс C++ был написан на C++. Никогда не существовало «Проекта C++» и «Комитета по разработке C++». Поэтому C++ развивался и продолжает развиваться во всех направлениях, чтобы справляться со сложностями, с которыми сталкиваются пользователи, а также в процессе дискуссий автора с его друзьями и коллегами».

Перечислим некоторые особенности языка C.

В языке C реализован ряд операций низкого уровня. Некоторые из таких операций напрямую соответствуют машинным командам, например, поразрядные операции или операции ++ и —.

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

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

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

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

6. Типы данных языка C++ , операции, комментарии

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

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

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

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

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

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

Читать еще:  Ошибка 413 iphone 5s

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

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

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

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

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

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

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

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

Большая Энциклопедия Нефти и Газа

Машинно-зависимый язык

Машинно-зависимые языки ориентированы на конкретную ЭВМ, имеют непосредственный доступ к аппаратным средствам ЭВМ и чаще всего используются для составления программ, входящих в состав операционной системы. [1]

Машинно-зависимые языки , в свою очередь, делят на машинные и машинно-ориентированные. [2]

Различают машинно-независимые и машинно-зависимые языки высокого уровня . Вторые пригодны при применении определенных серий МПК. Для программирования устройств, построенных с использованием комплекта серии КР580, разработан язык высокого уровня PL M-80, относящийся к классу машинно-зависимых языков высокого уровня. [3]

Класс машинно-зависимых языков представлен ассемблером. Язык ассемблера делает доступными все программно-управляемые компоненты ПЭВМ. Поэтому он применяется для написания программ, явно использующих специфику конкретной аппаратуры. Ассемблер — это наиболее трудоемкий язык программирования, и из-за его низкого уровня не удается построить средства отладки, которые существенно снизили бы эту трудоемкость. [4]

К машинно-зависимым языкам относят машинный и машинно-ориентированный языки. Машинный язык в качестве символов использует коды представления информации в ЭВМ. [5]

В группу машинно-зависимых языков программирования входят машинные и машинно-ориентированные языки. [6]

Язык ассемблера является машинно-зависимым языком . Это значит, что он отражает особенности архитектуры конкретного типа микрокомпьютеров. Программа, написанная на языке ассемблера для одного типа микрокомпьютеров, как правило, непригодна для другого, если оба типа не совместимы по своей архитектуре. По этой причине глубокое понимание языка ассемблера требует предварительного детального знакомства с архитектурой соответствующего микрокомпьютера. Универсального языка ассемблера, подобного БЕЙСИКу, не существует. Рассматриваемый здесь язык совпадает с подробно изложенным в [13] языком ассемблера, используемым в мини-компьютерах СМ-3 и СМ-4, совместимых по архитектуре с ДВК. [7]

Причем не хотелось бы как употреблять машинно-ориентированный или машинно-зависимый язык , так и описывать программы для машины в абстрактных понятиях, оставляющих открытыми вопросы представления. В попытках найти компромисс между этими крайними соображениями уже был создан язык Паскаль, и десять лет работы с ним [1.3] привели нас к языку Модула-2. В нем сохраняются основные понятия Паскаля и добавляются некоторые улучшения и расширения. Язык Модула-2 уже был успешно реализован на нескольких машинах, и это подтвердило достаточную близость его понятий к реальным машинам и возможность легкого объяснения как самих понятий, так и их представления. Язык достаточно близок и к другим языкам, следовательно, уроки, из него извлеченные, применимы и к ним. [8]

В отличие от АЛГОЛа ФОРТРАН содержит элементы, свойственные машинно-зависимым языкам . В частности, это проявляется в том, что программа записывается на специальных бланках со строгой фиксацией расположения отдельных операторов, а также соблюдением их стандартного расположения на перфокартах. [9]

Фортран в отличие от Алгола содержит элементы, свойственные машинно-зависимым языкам . В частности, это проявляется в том, что программа записывается на специальных бланках со строгой фиксацией расположения отдельных операторов, а также в стандартном расположении их на перфокартах. Подробнее программирование на Фортране изложено в гл. [10]

Фортран в отличие от Алгола содержит элементы, свойственные машинно-зависимым языкам . В частности, это проявляется в том, что программа записывается на специальных бланках со строгой фиксацией расположения отдельных операторов, а также в стандартном расположении их на перфокартах. Подробнее программирование на Фортране изложено в гл. [11]

Следует, однако, отметить, что каждый язык Ассемблера является машинно-зависимым языком и отражает аппаратурные особенности ( в частности, состав программно-доступных регистров) той микроЭВМ, для которой он создан. Поэтому программа на этом языке, подготовленная для одного типа микропроцессора, не может быть использована в ЭВМ с другой системой команд. Кроме того, программирование на Ассемблере представляет собой трудоемкую задачу. [12]

Автокоды, являясь машинно-ориентированными языками программирования, вместе с машинными языками образуют группу машинно-зависимых языков , поскольку в их основе лежит система счисления определенной ЦВМ. [13]

При решении задач системного программирования ( разработка системного математического обеспечения ЭВМ) предпочтение следует отдать машинно-зависимым языкам , в частности макроязыку, поскольку только в этом случае можно максимально использовать все возможности вычислительной машины. [14]

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

Ссылка на основную публикацию
Adblock
detector