![]() |
|
|
Реферат: VAX и Berceley PascalРеферат: VAX и Berceley PascalРЕФЕРАТ VAX И BERCELEY PASCAL Компьютер VAX фирмы DEC (Digital Equipment Corporation) принадлежит к семейству мини-ЭВМ. Система VAX похожа на любую другую компьютерную систему. Аппаратное и программное обеспече- ние, работая вместе, образуют высокоэффективную и высокопроиз- водительную систему. Обобщенная структура системы VAX-11 пока- зана на рис.1. Консоль представляет собой терминал, используемый для на- чальной загрузки системного программного обеспечения, модифика- ции его средств и изменения системных параметров. Загрузка сис- темных программ выполняется посредством подсоединенной к машине недорогой внешней памяти - накопителя на гибких магнитных дис- ках. Связь центрального процессора VAX с оперативной памятью и внешними устройствами (за исключением консоли) осуществляется через так называемое синхронное межсоединение. Физически оно представляет собой набор гнезд, в которые могут вставляться мо- дули на печатных схемах. В системе VAX используется оперативная память произвольно- го доступа (RAM - Random Access Memory), как и в персональных компьютерах. В оперативной памяти находятся данные и программы, выполняемые центральным процессором. Содержимое этой памяти постоянно изменяется; она очищается в момент выключения компь- ютера. Устройство центрального процессора - это мозг компьютера. Центральный процессор выполняет команды программ и управляет другими компонентами системы.В состав центрального процессора VAX входит логическое устройство, управляющее извлечением ко- манд из памяти и их выполнение, а также арифметическое и логи- ческое устройство, реализующее выполнение команд. В состав центрального процессора входит также ряд регистров. Некоторые . из них предоставляются в распоряжение пользователей, а другие предназначены исключительно для работы центрального процессора. Пользователи могут работать с 16 регистрами центрального про- цессора размером 32 двоичных разряда каждый. Двенадцать из них (R0-R11) являются регистрами общего назначения. С помощью ре- гистров R0-R11 можно формировать адреса операндов. Оставшимися четырьмя регистрами VAX могут пользоваться только опытные прог- раммисты, понимающие особую роль этих регистров в системе. В состав центрального процессора VAX входит также регистр из 32 двоичных разрядов, называемый длинным словом состояния процессора. Его старшие 16 двоичных разрядов содержат информа- цию о состоянии процессора. Изменение этой информации разрешено только привилегированным системным программам пользователей. Младшие 16 двоичных разрядов этого регистра образуют так назы- ваемое "слово состояния программы". В этом слове содержится ин- формация о текущем состоянии выполняемой программы. Но что такое компьютер без соответствующего программного обеспечения ?! Машину без программного обеспечения иногда назы- вают "голой". Первые машины на самом деле были "голыми". Они управлялись с помощью набора переключателей. Сложность работы в этом режиме и вызвала появление операционных систем. Одной из них и явилась операционная система UNIX. Первая версия ОС UNIX была разработана в 1969 г. К.Томпсоном и Д.Рит- чи. А уже потом она стала интенсивно развиваться и адаптиро- ваться различными фирмами для разных ЭВМ. В частности была спроектирована ОС UNIX BSD 4.3 для компьютеров серии VAX. Система UNIX проектировалась в первую очередь как инстру- ментальная, предназначенная для создания и отладки новых средс- тв программного обеспечения. И в этом ее создатели весьма пре- успели. Прежде всего они учли все то лучшее, что имелось в то . время в уже существующих операционных системах. Создатели UNIX смогли реализовать принципиально новую ОС на базе нескольких новых и плодотворных идей. Положенные в основу системы идеи позволили применять UNIX на компьютерах с разной архитекту- рой.Следовательно, применение этой ОС позволяет переносить программы, работающие под ее управлением, с одного типа машин на другой с весьма незначительными изменениями или вовсе без них. Это дает возможность разработчикам создавать программы в виде законченного продукта, которому гарантирован широкий рынок сбыта. Она включает в себя множество средств, удобных для созда- ния как отдельных программ, так и пакетов прикладных программ : 7: 0 Иерархическую файловую систему ; 7: 0 Совместимые по вводу/выводу файлы, устройства и процессы; 7: 0 Асинхронную обработку; 7: 0 Интерпретатор командного языка; 7: 0 Свыше 100 системных и вспомогательных команд; 7: 0 Ряд языков программирования, включая Паскаль,Бейсик и Си. Следует отметить, что в сравнении с другими операционными системами UNIX имеет два недостатка. Она очень эффективна в тех случаях, когда пользователи выполняют различные действия, а при решении нескольких одинаковых задач ее эффективность падает. Второй недостаток ОС UNIX - слабая приспособленность к работе в режиме реального времени. Но не стоит терять из внимания то, что существует возможность адаптирования UNIX для решения тако- го рода задач, но следует учитывать, что существуют и другие ОС, в большей степени приспособленные для решения таких задач. И наконец указав некоторые начальные сведения о системе, я попробую описать основные положения при работе с ней. Работа с системой UNIX начинается с входа в нее, т.е. с . процедуры входа. Эта процедура обеспечивает возможность регист- рировать имена пользователей, время входа, использованное ма- шинное время, а также идентифицировать владельцев файлов, опре- делять доступность пользователей, распознавать типы применяемых терминалов и т.п. Для того чтобы пользователь имел возможность входа в систему, он должен быть введен ее администратором в число абонентов. При входе в систему вы получите сообщение "lo- gin:". Вы должны будете ввести ваше регистрационное имя. Далее после короткой паузы система потребует ввод пароля. Пароль - это слово, которое держится в секрете и вводится в качестве подтверждения идентификатора пользователя. Вводите пароль. Любая вводимая с клавиатуры терминала информация отобража- ется на экране. Исключение сделано только для пароля, вводимые символы которого не отображаются. Ввод пароля требует повышен- ного внимания, поскольку ошибка при этом приведет к необходи- мости повторения всей процедуры входа. Система проверяет введенный пароль, и, если он верен, про- цедура входа продолжается. По окончании процедуры входа UNIX выдауе на экран некоторое сообщение. После этого на экран выво- дится приглашение, свидетельствующее о готовности системы при- нять команду. Далее приводится синтаксис и описание основных команд по навигации , работе в файловой системе и некоторых ин- формационных команд. . ┌─────────────────────────────────────────┬───────────────────┐ │ КОМАНДА │ ЗНАЧЕНИЕ │ ├─────────────────────────────────────────┼───────────────────┤ │ ps │ выводит информацию│ │ │ о текущем состоя-│ │ │ нии сети. │ │ who │ вывод списка рабо-│ │ │ тающих в данный │ │ │ момент пользовате-│ │ │ лей. │ │ echo [набор символов] │ вывод набора сим-│ │ │ волов. │ │ data │ вывод текущей даты│ │ │ и времени. │ │ man [имя команды] │ выводит информацию│ │ │ о указанной коман-│ │ │ де. │ │ pwd │ вывод абсолютного│ │ │ имени текущего ка-│ │ │ талога. │ │ ls │ вывод содержимого│ │ │ текущего каталога.│ │ cd [путь\имя директории] │ осуществляет пере-│ │ │ ход в указанную│ │ │ директорию. │ │ сat [путь\имя файла] │ вывод содержимого│ │ │ содержимого файла│ │ │ на экран. │ │ mkdir [путь\имя директории] │ создание директо-│ . │ │ рии. │ │ cp [путь1\имя файла1] [путь2\имя файла1]│ копирование файла1│ │ │ из одной директо-│ │ │ рии в другую│ │ │ (сначала указыва-│ │ │ ется откуда потом│ │ │ куда) │ │ mv [путь1\имя файла1] [путь1\имя файла2]│ переименовка фай-│ │ │ ла1 в файл2. │ │ mv [путь1\имя файла1] [путь2\имя файла1]│ перемещение файла1│ │ │ из одной директо-│ │ │ рии в другую (сна-│ │ │ чала указывается│ │ │ откуда потом куда)│ │ rm [путь\имя файла] │ удаление файла. │ │ rmdir [путь\имя каталога] │ удаление пустого│ │ │ каталога. │ └─────────────────────────────────────────┴───────────────────┘ После работы с системой необходимо обязательно из нее вый- ти. Выход из системы намного проще, чем вход в нее. Нужно наб- рать logout и терминал будет отключен от операционной системы, на этом ваша работа закончится. В университете Berkeley (штат Колифорния, США) была разра- ботана система программирования Berkeley Pascal. Система была написана для ОС UNIX 4.X, разработанная в том же университете. Программа на языке Паскаль записывается в виде последова- тельности символов, к числу которых относятся латинские буквы, арабские цифры, знаки препинания, знаки операций. Для обозначе- ния исходных данных и результатов вычислений употребляются пе- ременные, которыми могут быть не только любые буквы - a,b,D,U и . т.д., но и, например, последовательности символов вида a1,b32,word и т.д., которые состоят из букв и цифр и начинаются с буквы. Соответствующее исходное данное или результат вычисле- ния называется значением переменной. Числа в программе записы- ваются в десятичной системе счисления, вместо запятой пишется точка : 0,-1,0.242 и т.д. Количество цифр в числе не может быть слишком большим;число не должно превышать максимально допусти- мого в машине числа. Это относится и к количеству букв и цифр в переменной. Переменные и числа - простейшие частные случаи выражения. Более сложные выражения строятся из чисел и переменных с по- мощью знаков операций сложения, вычитания, умножения и деления. Эти знаки суть +, -, *,/. Кроме того, в выражении могут быть использованы круглые скобки и некоторые функции. Знак операции деления / позволяет записывать в строку выражения, которые тра- диционно записываются с выходом из строки: в паскале пишут a/b, c/17, (a*x+b)/(c+d) и т.д, Знак операции умножения * нельзя опускать или заменять точкой. Допустимое для математического текста выражение 0,5(x+7) 77 0(x+2) 77 0(x-3) в паскале должно быть за- писано в виде 0,5*(x+7)*(x+2)*(x-3). Знак - (минус) может упот- ребляться и для изображения величины, противоположной данной: -x, -(a*b+y) и т.д. Нельзя размещать два знака операций рядом; последовательности символов 3*-2, x1/-x2-это не выражения, вы- ражениями будут 3*(-2),x1/(-x2). В выражении могут быть использованы следующие функции: sin(E) - синус Е, cos(E) - косинус E, ln(E) - натуральный логарифм Е; exp(E) - показательная функция Е, т.е. e 5Е 0; abs(E) - f,cjk.nyfz dtkbxbyf (модуль) Е, т.е. 72 0Е 72 0; . sqr(E) - квадрат (вторая степень) Е, т.е _. .Е 52 0; sqrt(E) - квадратный корень из Е, т.е. 7? 0Е ; выражение, задающее аргумент, всегда заключается в скобки. Так, например, мы пишем sqrt(sgr(b)-4*a*c). В ходе выполнения программы вычисляются значения выраже- ний. При вычислении действуют обычные правила старшинства опе- раций: старшие операции - умножение и деление, следующие по старшинству - сложение и вычитание. Из двух операций одинаково- го старшинства первой выполняется та, знак которой в выражении встречается раньше. Круглые скобки изменяют этот естественный порядок: значением выражения (x+y)/2 будет половина суммы зна- чений переменных x и y, в то же время значением выражения x+y/2 будет сумма значения x и половины значения y. Последовательность букв и цифр, начинающаяся с буквы, на- зывается идентификатором. Из рассмотренных примеров видно, что идентификатор не обязательно представляет собой переменную: sin, сos и т.д. - это не переменные, а имена функций. В прог- раммах встречаются и другие виды идентификаторов. Отдельные инструкции, входящие в программу, в Паскале при- нято называть операторами. Оператор присваивания состоит из имени, идентифицирующего переменную, символа присваивания и выражения. В области описа- ния функции должен быть по крайней мере один оператор присваи- вания, в котором именем, идентифицирующим переменную, является идентификатор функции. Выполнение оператора присваивания приводит к вычислению значения, представляемого выражением, и присваиванию значения переменной, идентифицированный именем, стоящим слева от символа присваивания. В случае рассмотренного выше присвоения, происхо- дящего в области описания функции, осуществляется определение . результата функции, т.е. величины, возвращаемой в месте вызова функции. Необходимо, чтобы тип выражения и тип переменной соответс- твовали друг другу. Это соответствие обеспечивается, если пере- менная и выражение принадлежат к одному типу, а так же в том случае, когда переменная типа real, а выражение целого типа. Синтаксис оператор-присваивания: переменная:=выражение Примеры i:=i+1; select:=true; Оператор процедуры состоит из идентификатора процедуры, непосредственно за которым следует заключенный в круглые скобки список параметров вызова. Оператор процедуры без параметров состоит только из идентификатора процедуры. Выполнение оператора процедуры приводит к выполнению дейс- твий, перечисленных в описании этой процедуры. Прежде всего чем это произойдет, происходит идентификация переменных, являющихся параметрами вызова процедуры, и определение значений выражений. Синтаксис оператор-процедуры: название-процедуры(список параметров) название- процедуры название-процедуры: идентификатор Примеры Insert(InputFile) ColLin(inputstr,col) Exit . Оператор перехода состоит из ключевого слова goto, после которого следует ссылка на метку. Выполнение оператора перехода приводит к выполнению после- довательности операторов, начинающихся с оператора, отмеченного меткой. Необходимо, чтобы оператор перехода находился в преде- лах блока, в котором определена метка, указанная в операторе. Недопустимо, чтобы оператор перехода передавал управление внутрь сложного оператора или программы. Синтаксис оператор-перехода: goto метка метка: идентификатор Примеры goto 345 goto finish Составной оператор состоит из ключевого слова begin, после которого идет последовательность операторов и ключевое слово end. Составной оператор используется там, где синтаксис языка требует использования одного оператора, а необходимо выполнение последовательности операторов. Выполнение составного оператора приводит к выполнению зак- люченной в нем последовательности операторов. Синтаксис составной-оператор: begin последовательность-операторов end Примеры begin i:=1; j:=0; . end; begin Writeln(out); read(in); end; Условный оператор состоит из ключевого слова if, после ко- торого идет логическое выражение, ключевое слово then и опера- тор. После оператора может следовать ключевое слово else и сно- ва оператор. Выполнение условного оператора заключается в вычислении значения выражения, а затем, если его результатом будет величи- на со значением true, в выполнении оператора, идущего после ключевого слова then. Если результатом будет величина со значе- нием false, а условный оператор не содержит ключевого слова el- se, то выполнение оператора заканчивается. Если есть ключевое слово else, то выполняется следующий после него оператор. Если оператор, заключенный в условном операторе if, также является условным, то в нем должно быть ключевое слово else. Синтаксис Условный-оператор if логическое-выражение then оператор; if логическое-выражение then оператор else оператор; Примеры if a=b then a:=5 else a:=6; if a=b then begin a:=6; b:=6 end; if a=b then . if a=5 then b:=6 else a:=1 else a:=10; Оператор варианта состоит из ключевого слова case,после которо- го идет индекс варианта, ключевое слово of, список операторов выбора, каждому из которых предшествует метка выбора, а после него ключевое слово end. Список меток выбора состоит из списка констант, после ко- торого следует двоеточие. Каждая из констант этого списка долж- на быть одного типа с индексом варианта. Если некоторая часть списка констант является последовательностью элементов перечис- ляемого типа, она может заменяться конструкцией : первый..последний выделяющей первый и последний элементы последовательности. Вместо меток выбора перед последним оператором выбора может ис- пользоваться ключевое слово else. После такой "метки" двоеточие не ставится. Синтаксис оператор-варианта: case индекс-варианта of последовательность-операторов-выбора end Выполнение оператора выбора заключается в определении зна- чения индекса варианта и выполнении того оператора, перед кото- рым стоит метка выбора со значением, равным значению индекса варианта. Если такого оператора нет, то выполняется оператор после ключевого слова else, если и такого оператора нет, то вы- полняется пустой оператор. . Примеры case a=b of false: i:=1; true: j:=2 end; case a=b of false: i:=1 else j:=2 end; ЦИКЛИЧЕСКИЕ ОПЕРАТОРЫ. Оператор for состоит из ключевого слова for, за которым следует идентификатор параметра цикла, символ присваивания, вы- ражение, определяющее начальное значение параметра цикла, клю- чевое слово to или downto, ключевое слово do и произвольный оператор. Параметр цикла и оба выражения должны быть одинакового пе- речисляемого типа. Синтаксис оператор-for: for переменная:=выражение 4a 0 to выражение 4b 0 do оператор Выполнение оператора for приводит к выполнению содержащегося в нем оператора для всех значений параметра цикла, которые нахо- дятся в диапазоне значений выражение 4a 0 и выражение 4b 0. Примеры for i:=1 to 4 do writeln(i); Оператор while состоит из ключевого слова while, посте ко- торого идут логическое выражение, ключевое слово do и любой оператор. Синтаксис оператор-while: . while выражение do оператор Оператор while выполняется по следующему алгоритму: 1. Определяется значение выражения. 2. Если это значение false, то выполнение оператора считается оконченным. 3. Если получено значение true, то выполняется оператор, следу- ющий после ключевого слова do, а потом описанные действия пов- торяются сначала. Пример while i<>0 do begin i:=i-1; writeln(i) end; Оператор repeat состоит из ключевого слова repeat и идущих за ним произвольного оператора, ключевого слова until и логи- ческого выражения. Синтаксис оператор-repeat: repeat оператор until выражение Оператор repeat выполняется по следующему алгоритму: 1. Выполняются операторы, идущие после ключевого слова repeat. 2. Вычисляется значение выражения после ключевого слова until. 3. Если получено значение true, то выполнение оператора счита- ется оконченным. 4. Если получено значение false, то описанные действия повторя- ются сначала. Пример i:=10; repeat writeln(i); . i:=i-1; until i=0; Стандартные типы Паскаля Понятие тип связано с фиксированным набором данных. Переменная относится к определенному типу, если ей можно присвоить данные, при- надлежащие к набору определяющему этот тип. В языке Паскаль необходи- мое явное определение типа каждой из переменных в программе. Связь имени переменной с выбранным типом происходит при описании переменной. Типы переменных делятся на простые и составные. К простым типам относятся порядковые, вещественные и перечисляемые, к составным - строковый, массивовый, записной, множественный и файловый. Среди упомянутых типов можно выделить следующие стандартные типы: integer (целый), byte (байтовый), char (символьный), boolean (логический), re- al (вещественный). Первые четыре называются порядковыми. Они характер- ны не только тем, что элементы их упорядочены, они также образуют счетное множество. Стандартные скалярные типы определены по умолчанию, т.е. опреде- лять их не надо. Их неявное определение действительно во всей програм- ме, за исключением тех фрагментов, в которых они явно переопределяются. Массивовый тип Массивовый тип является составным типом данных. Массив состоит из определенного количества компонентов одинакового типа. Доступ к компо- нентам (элементам) массива, осуществляется с помощью индексирования. Индексом может быть произвольное выражение порядкового типа, заключен- ные в квадратные скобки. Допустимый диапазон индексов определяется в описании массива. Описание массивового типа состоит из ключевого слова array, после которого следует заключенное в квадратные скобки описание типа индек- сов, ключевое слово of, а после него описание типа элементов. Синтаксис: . описание-массива: array[тип-индексов] of тип-элементов тип-индексов: описание-порядкового-типа тип-элементов: описание-типа Пирмеры: type str = array [1..250] of char; var inputstr: str; Множественный тип Множественный тип является составным типом. Множество - это переменная, которой может быть присвоено выбранное подмно- жество множества всех подмножеств. Базовым множеством последне- го может быть произвольное множество элементов порядкового ти- па. Каждый элемент рассматриваемого типа является одним из та- ких элементов. Два множества равны тогда и только тогда, если они состоят из одинаковых элементов. Если все элементы одного множества яв- ляются элементами другого, то говорят, что первое множество со- держится во втором. Описание множественного типа состоит из ключевого слова set, после которого идет ключевое слово of и описание базового типа. Необходимо, чтобы порядковый тип, выполняющий роль базо- вого, содержал не более 256 элементов и чтобы результат функции ord для каждого элемента находился в интервале [0;255]. Синтаксис описание-множественного-типа set of базовый-тип . основной-тип: порядковый-тип Примеры type Mnojestvo=set of char; Функции и процедуры языка Паскаль Функции и процедуры являются объектами, описывающими опре- деленные фрагменты алгоритма, реализуемого программой, поэтому они называются подпрограммами. В отличие от других сложных объектов, например оператора варианта, подпрограмма выполняется только после её вызова, т.е. в зависимости от ситуации: после использования оператора проце- дуры или вызова функции. Оператор процедуры может находиться в любом месте программы, в котором может использоваться, напри- мер, пустой оператор, а вызов функции может осуществляться только в выражении в виде обозначения функции. Подпрограммы, как и переменные, должны быть описаны. Опи- сание подпрограммы может находиться в декларативной части бло- ка. Описание подпрограммы, называемое иногда определением, сос- тоит из заголовка и блока, являющегося телом подпрограммы. За- головок процедуры состоит из ключевого слова procedure, за ко- торым следуют имя процедуры, заключенный в круглые скобки пере- чень параметров и точка с запятой. Заголовок функции состоит из ключевого слова function, за которым следует заключенный в круглые скобки перечень параметров функции, двоеточие, опреде- ление типа результата функции и точка с запятой. Если перечень параметров под программы пустой, то он опускается вместе со скобками. Необходимо, чтобы при выполнении функции был выполнен опе- ратор присваивания, в котором слева от оператора присваивания . находится имя функции, а справа выражение, соответствующее типу результата функции. Могут измениться некоторые параметры вызова. Синтаксис описание-подпрограммы: описание-процедуры описание-функции описание-процедуры: procedure имя-процедуры (перечень-параметров); procedure имя-процедуры; описание-функции: function имя-процедуры (перечень-параметров): тип-результата; function имя-процедуры: тип-результата; имя-процедуры: идентификатор тип-результата: идентификатор-простого-типа идентификатор-простого-типа: идентификатор Элементы перечня параметров подпрограммы разделяются точ- кой с запятой. Каждый элемент перечня содержит список идентифи- каторов параметров, за которым следует двоеточие и идентифика- тор типа параметров данного списка. При обращении к подпрограмме происходит согласование фор- мальных параметров подпрограммы с фактическими параметрами её вызова. Количество фактических параметров должно быть равно ко- личеству формальных параметров. Значения параметров передаются в порядке появления их в заголовке подпрограммы и в обращении к ней. Связь формальных и фактических параметров может осущест- . вляться по значению и по ссылке. В первом случае формальный па- раметр рассматривается как локальная переменная подпрограммы, которой в момент её выполнения (для данного вызова подпрограм- мы) присвоено значение фактического параметра. В втором случае формальный параметр как бы замещает фактический. Для использо- вания такого рода связи формальных ифактических параметров пе- ред списком идентификаторов параметров должно быть ключевое слово var& Особым случаем связи по ссылки является связь формального и фактического параметров, когда последний представляет собой имя подпрограммы. Одно из ограничений языка Паскаль по отноше- нию к стандартному Паскалю состоит в том, что такого рода связь отсутствует. Синтаксис элемент-перечня-параметров: список-имён-параметров: обозначение-типа var список-имён-параметров: обозначение-типа var список-имен-параметров обозначение-типа: идентификатор-типа идентификатор-типа: идентификатор имя-параметра: идентификатор И в заключении отмечу, что Berkeley Pascal имеет в отличие от стандартного Паскаля свои нестандартные функции и процедуры (argc:integer; возвращает число аргументов в командной строке; Random(0..1):real; датчик случайных чисел; argv(integer,string); получение аргумента командной строки по номеру и т.д.), что значительно облегчает разработку программ и возможности этого языка. |
![]() |
||
НОВОСТИ | ![]() |
![]() |
||
ВХОД | ![]() |
|
Рефераты бесплатно, реферат бесплатно, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, сочинения, курсовые, дипломы, научные работы и многое другое. |
||
При использовании материалов - ссылка на сайт обязательна. |