Файл: Анализ языков программирования.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 21.10.2020

Просмотров: 472

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Общий формат записи инструкций одинаков для обоих стандартов:

`[метка:] опкод [операнды] [;комментарий]`

Опкод — непосредственно мнемоника инструкции процессору. К ней могут быть добавлены префиксы (повторения, изменения типа адресации и пр.). В качестве операндов могут выступать константы, названия регистров, адреса в оперативной памяти и пр.. Различия между стандартами Intel и AT&T касаются, в основном, порядка перечисления операндов и их синтаксиса при различных методах адресации.

Используемые мнемоники обычно одинаковы для всех процессоров одной архитектуры или семейства архитектур (среди широко известных — мнемоники процессоров и контроллеров Motorola, ARM, x86). Они описываются в спецификации процессоров.

Например, процессор Zilog Z80 наследовал систему команд Intel i8080, расширил ее и поменял мнемоники (и обозначения регистров) на свой лад. Например, сменил интеловские mov на ld. Процессоры Motorola Fireball наследовали систему команд Z80, несколько её урезав. Вместе с тем, Motorola официально вернулась к мнемоникам Intel. и в данный момент половина ассемблеров для Fireball работает с интеловскими мнемониками, а половина с мнемониками Zilog.

[редактировать]

Директивы

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

определение данных (констант и переменных);

управление организацией программы в памяти и параметрами выходного файла;

задание режима работы компилятора;

всевозможные абстракции (т.е. элементы языков высокого уровня) — от оформления процедур и функций (для упрощения реализации парадигмы процедурного программирования) до условных конструкций и циклов (для парадигмы структурного программирования);

макросы.

[редактировать]

Происхождение и критика термина «язык ассемблера»

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

Язык ассемблера в русском языке часто называют «ассемблером» (а что-то связанное с ним — «ассемблерный»), что, согласно английскому переводу слова, неправильно, но вписывается в правила русского языка. Однако, сам ассемблер (программу) тоже называют просто «ассемблером», а не «компилятором языка ассемблера» и т. п.

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


[редактировать]

  1. AWK МИНУС

Дата создания:1977

Создан под влиянием:

C

SNOBOL

Unix shell

Повлиял на:Tcl Парадигма:

императивная

на уровне значений

процедурная

скалярная

Типизация:

вывод типов

динамическая

типизированная

Принятые расширения файлов:

.awk

Реализации и версии:

gawk

mawk

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

Программа, написанная на AWK, принимает на вход поток текстовых данных (получаемых из файла или с консоли) и обрабатывает его построчно. Сама программа является набором правил вида “шаблон — действие”, где шаблон является регулярным выражением, а действие — последовательностью команд. При обработке входного потока каждая строка данных сравнивается с каждым шаблоном, и выполняются действия тех правил, под шаблоны которых эта строка подходит. Специальные шаблоны BEGIN и END задают действия, которые выполняются до и после обработки входного потока, соответственно.

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

[редактировать]

Элементы синтаксиса: Комментарий до конца строки #

Регистрозависимость да

Регулярное выражение идентификатора переменной [_a-zA-Z][_a-zA-Z0-9]*

Присваивание значения переменной varname = value

Объявление переменной нет

Объявление переменной с присваиванием значения нет

Группировка выражений ( ... )

Блок { ... }

Равенство a == b

Неравенство a != b

Определение функции function functionName(argname1, ..., argnameN)

Вызов функции functionName(arg1, ..., argN)

Если - то if (condition) trueBlock

Цикл for - next для диапазона целых чисел с инкрементом на 1 for (i = first; i <= last; i++) loopBody

Цикл for - next для диапазона целых чисел с декрементом на 1 for (i = last; i >= first; i--) loopBody

[редактировать]

Примеры:

[редактировать]

Hello, World!: Пример для версий gawk 3.1.6, mawk 1.3.3

Печать выполняется шаблоном BEGIN, т.е. перед обработкой входных данных. Сами данные не обрабатываются.

BEGIN { print "Hello, World!" }

[редактировать]

Факториал: Пример для версий gawk 3.1.6, mawk 1.3.3

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

BEGIN {

f = 1

print "0! = " f

for (i=1; i<17; i++) {

f *= i

print i "! = " f

}

}

[редактировать]

Числа Фибоначчи: Пример для версий gawk 3.1.6, mawk 1.3.3

Используется итеративное определение чисел Фибоначчи. fib — ассоциативный массив, pr — строка.

BEGIN {

fib[1] = 1

fib[2] = 1

for (i=3; i<17; i++)

fib[i] = fib[i-1]+fib[i-2]

pr = ""

for (i=1; i<17; i++)

pr = pr fib[i] ", "

print pr "..."

}

[редактировать]

Квадратное уравнение: Пример для версий gawk 3.1.6, mawk 1.3.3

{ A = $1

B = $2

C = $3

if (A == 0)

print "Not a quadratic equation"

else

{ D = B*B-4*A*C

if (D == 0)

print "x = " (-B/2/A)

else if (D > 0)

{ print "x1 = " ((-B+sqrt(D))/2/A)

print "x2 = " ((-B-sqrt(D))/2/A)

}

else

{ print "x1 = (" (-B/2/A) "," (sqrt(-D)/2/A) ")"


print "x1 = (" (-B/2/A) "," (-sqrt(-D)/2/A) ")"

}

}

}

[редактировать]

  1. BARSIC ПЛЮС

BARSIC (Business And Research Scientific Interactive Calculator) является интерпретируемым языком программирования с псевдокомпиляцией исходного кода в brc-файл (сокращение от BARSIC Compiled). Первоначально возник как надстройка над библиотеками управления научными и учебными установками. В том числе со средствами отображения графиков и проведения вычислений по формулам, задаваемым пользователем. В дальнейшем были добавлены средства визуального проектирования пользовательского интерфейса. Это объектный язык с развитыми средствами процедурного программирования (функции-выражения, подпрограммы с различными модификаторами видимости внешних элементов внутри подпрограмм, модули, структуры) и элементами объектности (набор встроенных предопределённых классов как способ организации удобного доступа к библиотекам). Предполагается добавление пользовательских классов по модели прототипирования.

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

В настоящее время наиболее широко используемыми приложениями BARSIC являются учебные модели по физике и математике:

доступная в открытом доступе виртуальная лаборатория barsic.spbu.ru (первоначально необходимо инсталлировать на компьютере среду BARSIC с данной странички

модели и тесты Интернет-олимпиады по физике по СПб и Северо-Западному региону РФ . К настоящему времени через Интернет-олимпиады по физике на основе тестов и моделей, выполняемых в среде BARSIC, прошло около 5000 человек (только в ноябре 2007 года 1083 человек по 10-м классам и 1246 человек по 11-м классам).

[редактировать]

Состав программного комплекса BARSIC

бесплатная свободно распространяемая исполняющая среда barsic.exe (и сопровождающие файлы) — ‘проигрыватель’ файлов BARSIC

среда barsicIDE.exe разработки программ-приложений, свободно доступная для некоммерческого использования

[редактировать]

Основные особенности языка и среды BARSIC

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


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

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

Во-первых, выбран такой синтаксис языка программирования, чтобы из-за случайных опечаток во время набора программы минимизировать вероятность возникновения недиагностируемых ошибок. В отличие от BARSIC, такие языки, как FORTRAN, JavaScript, BASIC в очень сильной степени подвержены этим ошибкам из-за правил автоматического приведения типов, а также свободной типизации (для JavaScript и Visual BASIC). В несколько меньшей степени эти ошибки характерны для C и C++, а в еще меньшей степени – для Java (за исключением работы со строками, где такие ошибки для Java типичны) и Object PASCAL (Delphi).

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

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


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

[редактировать]

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

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

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

Одно из активно развивающихся направлений, визуальное проектирование —полностью основано на использовании возможностей интегрированной среды. Пользователь в интерактивном режиме выбирает необходимые для его программы объекты языка программирования и устанавливает между ними связи. Популярность таких языков как Visual BASIC (Microsoft), а также Object PASCAL (среды Delphi и Kylix, Borland), не случайна. Даже неопытный программист, не знающий кроме BASIC других языков программирования и никогда не программировавший под Windows, может за два-три дня с помощью Visual BASIC создать прикладную программу, работающую под Windows. А вот программисту высокого класса, не программировавшему до того под Windows, с помощью C++ зачастую приходится для создания такой же программы затратить недели, а то и месяцы. Правда, Visual BASIC обладает рядом существенных ограничений. С помощью сред визуального проектирования можно создавать весьма сложные программы, не набрав с клавиатуры ни строчки кода.

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