Реферат: 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] ofchar;
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); получение аргумента команднойстроки по
номеру и т.д.), что значительно облегчает разработкупрограмм и
возможности этого языка.