Автор работы: Пользователь скрыл имя, 10 Апреля 2014 в 15:55, реферат
В свою очередь объем передаваемой информации определяется полосой пропускания. Установлено, что достижимая скорость передачи информации тем выше, чем выше частота колебаний электрического тока или радиоволны. Для того, чтобы передать в закодированном виде любую букву алфавита, необходимо использовать 7–8 битов. Таким образом, если для передачи текста применять проводную связь с частотой 20 кГц, то стандартную книгу в 400–500 страниц можно будет передать примерно за 1,5–2 часа. При передаче по линии с частотой 32 МГц та же процедура потребует лишь 2–3 секунды .
Резидентные вирусы
Вирус находится в оперативной памяти и перехватывает сообщения ОС. Если нерезидентные вирусы активны только в момент запуска зараженной программы, то резидентные вирусы находятся в памяти и остаются активными вплоть до выключения компьютера или перезагрузки операционной системы. Резидентные вирусы находятся в оперативной памяти, перехватывают обращения операционной системы к тем или иным объектам и внедряются в них. Такие вирусы активны не только в момент работы зараженной программы, но и после завершения работы.
Бутовые вирусы
Одной из разновидностей резидентных вирусов являются так называемые бутовые вирусы. Отличительной особенностью последних является инфицирование загрузочного (бут - сектора) магнитного носителя (гибкого или жесткого диска). При этом инфицированным могут быть как загружаемые, так и не загружаемые дискеты.
Стелс-вирусы
Стелс-вирусы (невидимки) скрывают факт своего присутствия в системе. Они изменяют информацию таким образом, что файл появляется перед пользователем в незараженном виде, например, временно лечат зараженные файлы.
Полиморфик - вирусы
Полиморфик-вирусы используют шифрование для усложнения процедуры определения вируса. Данные вируса не содержат постоянных участков кода, что достигается шифрованием основного тела вируса и модификациями программы-расшифровщика. В большинстве случаев два образца одного и того же полиморфик - вируса не будут иметь ни одного совпадения. Именно поэтому полиморфик - вирус невозможно обнаружить при помощи выявления участков постоянного кода, специфичных для конкретного вируса. Полиморфизм встречается в вирусах всех типов – от загрузочных и файловых DOS – вирусов до Windows – вирусов и даже макровирусов.
язык программирования паскаль
История
Язык Паскаль был создан Никлаусом Виртом в 1968—1969 годах после его участия в работе комитета разработки стандарта языка Алгол-68. Язык назван в честь французского математика, физика, литератора и философа Блеза Паскаля, который создал первую в мире механическую машину, складывающую два числа. Первая публикация Вирта о языке датирована 1970 годом, представляя язык автор указывал в качестве цели его создания — построение небольшого и эффективного языка, способствующего хорошему стилю программирования, использующему структурное программирование и структурированные данные.
Последующая работа Вирта была направлена на создание на основе Паскаля языка системного программирования, с сохранением возможности вести на его базе систематический, целостный курс обучения профессиональному программированию[5]. Результат этой работы — язык Модула-2.
Особенностями языка являются строгая типизация и наличие средств структурного (процедурного) программирования. Паскаль был одним из первых таких языков. По мнению Вирта, язык должен способствовать дисциплинированному программированию, поэтому, наряду со строгой типизацией, в Паскале сведены к минимуму возможные синтаксические неоднозначности, а сам синтаксис автор постарался сделать интуитивно понятным даже при первом знакомстве с языком.
Тем не менее, первоначально язык имел ряд ограничений: невозможность передачи функциям массивов переменной длины, отсутствие нормальных средств работы с динамической памятью, ограниченная библиотека ввода-вывода, отсутствие средств для подключения функций написанных на других языках, отсутствие средств раздельной компиляции и т. п. Подробный разбор недостатков языка Паскаль того времени был выполнен Брайаном Керниганом в статье «Почему Паскаль не является моим любимым языком программирования»[9] (эта статья вышла в начале 1980-х, когда уже существовал язык Модула-2, потомок Паскаля, избавленный от большинства его пороков, а также более развитые диалекты Паскаля). Некоторые недостатки Паскаля были исправлены в ISO-стандарте 1982 года, в частности, в языке появились открытые массивы, давшие возможность использовать одни и те же процедуры для обработки одномерных массивов различных размеров.
Однако многие недостатки языка не проявляются или даже становятся достоинствами при обучении программированию. Кроме того, по сравнению с основным языком программирования в академической среде 1970-х (которым был Фортран, обладавший гораздо более существенными недостатками), Паскаль представлял собой значительный шаг вперёд. К 1980-м годам Паскаль стал основой для многочисленных учебных программ, в отдельных случаях на его основе были созданы специализированные обучающие языки программирования, так, в начале 1980-х годов в СССР для обучения школьников основам информатики и вычислительной техники Андрей Ершов разработал алголо-паскалеподобный «учебный алгоритмический язык».
Наиболее известной реализацией Паскаля, обеспечившей широкое распространение и развитие языка, является Turbo Pascal фирмы Borland, выросшая затем в объектный Паскаль для DOS (начиная с версии 5.5) и Windows и далее в Delphi, в которой были внедрены значительные расширения языка.
Диалекты Паскаля, применяемые в Turbo Pascal для DOS и Delphi для Windows, стали популярны из-за отсутствия других успешных коммерческих реализаций.
Стандарты
После начала использования Паскаля в 1970 году и появления реализаций, расходящихся не только в дополнениях, но и в синтаксисе, был поднят вопрос о стандартизации языка. Стандарт языка был разработан Никлаусом Виртом в 1974 году совместно с Кетлин Йенсен (Kathleen Jensen).[10] В дальнейшем, были приняты международный стандарт от ISO и американский от ANSI. На данный момент, выделяют три принципиально разных стандарта: Unextended Pascal (исходный), Extended Pascal (расширенный), Object-Oriented Extensions to Pascal (объектно-ориентированное расширение Паскаля).
Стандарты языка Pascal: исходный, международные ISO и американские ANSI | |||
Название |
Вариант |
Кем/где разработан |
Год создания |
Pascal Standard |
исходный |
Н. Вирт, Кетлин Йенсен |
1974 |
Pascal Standard |
исходный |
ISO 7185:1983 |
1982 |
Unextended Pascal |
исходный |
ISO 7185:1990 |
1989 |
Extended Pascal |
расширенный |
ANSI/IEEE 770X3.160:1989 |
1989 |
ISO/IEC 10206 |
1991 | ||
Object-Oriented |
объектно-ориентированное расширение |
ANSI/X3-TR-13:1994 |
1993 |
Одним из главных дополнительных свойств объектно-ориентированного расширения Extended Pascal стала модульность и средства, облегчающие раздельную компиляцию.
Стандартизация языка была запаздывающей по отношению к реальному появлению в языке тех или иных возможностей. Коммерческие реализации расширяли стандартный Паскаль; так было сделано в UCSD Pascal, модификации Object Pascal фирмой Apple, Turbo Pascal от Borland (незначительно модифицированная версия Apple) и его ответвлений. Ни одна из распространённых коммерческих реализаций Паскаля не соответствует в точности ни одному из официальных стандартов языка.
Синтаксис и языковые конструкции
Паскаль, в его
первоначальном виде, представляет собою
чисто процедурный язык и включает в себя
множество алголоподобных структур и
конструкций с зарезервированными словами
наподобие if, then, else, while, for, и т. д. Тем не
менее, Паскаль также содержит большое
количество возможностей для структурирования
информации и абстракций, которые отсутствуют
в изначальном Алголе-60, такие как определение
типов, записи, указатели, перечисления,
и множества. Эти конструкции были частично
унаследованы или инспирированы от языков
Симула-67, Алгол-68[источник не указан
В современных диалектах (Free Pascal) доступны такие операции, как перегрузка операторов и функций.
Hello, world![править | править исходный текст]
Программы на Паскале начинаются с ключевого слова program и следующего за ним имени программы с точкой с запятой (в некоторых диалектах является необязательным), за именем может в скобках следовать список внешних файловых дескрипторов в качестве параметров; за ним следует тело программы, состоящее из секций описания переменных, типов и констант, объявлений процедур и функций и следующего за ними блока операторов, являющегося точкой входа в программу. В языке Паскаль блок ограничивается ключевыми словами begin и end. Операторы разделяются точками с запятой, после тела помещается точка, служащая признаком конца программы. Регистр символов в Паскале не имеет значения.
Таким образом, простейшая программа на Паскале будет выглядеть следующим образом:
program p;
begin
end.
Программа не выполняет никаких действий и содержит пустой блок операторов.
Пример программы, выводящей строку «Hello, world!»:
program HelloWorld(output);
begin
writeln('Hello, World!'); { оператор вывода строки }
end.
Типы данных[править | править исходный текст]
Простые типы данных Pascal: числа с плавающей запятой (real), целые (integer), символьный (char), логический (boolean) и перечисления (конструктор нового типа, введённый в Pascal).
В стандартном и расширенном Pascal есть только 4 простых типа, введённые Виртом в оригинальном языке 1973 года. Современные диалекты Pascal, такие, как FPC или Delphi, дополняют язык вариациями этих типов.
Целочисленные типы:
Тип |
Диапазон |
Формат |
Размер в байтах |
Byte |
0..255 |
Беззнаковый |
1 |
ShortInt |
−128..127 |
Знаковый |
1 |
SmallInt |
−32768..32767 |
Знаковый |
2 |
Word |
0..65535 |
Беззнаковый |
2 |
Integer |
-32 768..32 767 |
Знаковый |
2 |
Cardinal |
=LongWord |
Беззнаковый |
4 |
LongWord |
0..4294967295 |
Беззнаковый |
4 |
LongInt |
−2147483648..2147483647 |
Знаковый |
4 |
Int64 |
−9223372036854775808.. |
Знаковый |
8 |
QWord |
0..18446744073709551615 |
Беззнаковый |
8 |
Числа с плавающей запятой:
Тип |
Диапазон |
количество значащих цифр |
Размер в байтах |
поддержка |
Real/Double |
зависит от платформы |
??? |
8 |
??? |
Real |
-39..38 |
11-12 |
6 |
любая |
Single |
-45..38 |
7-8 |
4 |
любая кроме borland |
Extended |
-4951..4932 |
19-20 |
10 |
любая кроме borland |
Comp |
−2E64+1..2E63-1 |
19-20 |
8 |
любая кроме borland |
Currency |
−922337203685477.5808.. |
19-20 |
8 |
любая кроме borland |
var { секция объявления переменных }
r: Real; { переменная вещественного типа }
i: Integer; { переменная целого типа }
c: Char; { переменная-символ }
b: Boolean; { логическая переменная }
s: String; { переменная строки }
t: Text; { переменная для обьявления текстового файла }
e: (apple, pear, banana, orange, lemon); { переменная типа-перечисления }
В Pascal над целыми типами (byte, shortint, word, integer, longint и их диапазоны) допустимы побитовые операции. Логические операции над битами:
Над битами двух целых операндов можно выполнять ранее рассмотренные логические операции: not, and, or, xor. Отличие между побитовыми и логическими операциями состоит в том, что побитовые (поразрядные) операции выполняются над отдельными битами операндов, а не над их значением в десятичном (обычно) представлении.
Выделяется понятие порядковых типов данных (ordinal), к ним относятся целые типы (знаковые и беззнаковые), логический (boolean), символьный (char), перечислимые типы и типы-диапазоны.
Порядковые типы задаются целым числом (кодом), которое можно получить с помощью функции ord. Все операции, выполняемые над порядковыми типами, выполняются с их кодами.
Диапазоны содержат подмножество значений других порядковых типов:
var
x: 1..10;
y: 'a'..'z';
z: pear..orange;
Для порядковых типов определены операции inc, dec, succ, pred, ord, операции сравнения (= > < => <= <>), их можно использовать в операторах case, for (как счётчик цикла), как границы массивов, для задания элементов множеств и типов-диапазонов.
В Pascal, в отличие от Си-подобных языков, с типами boolean и char арифметические целочисленные операции не определены.
В отличие от многих распространённых языков, Pascal поддерживает специальный тип данных множество:
var
set1: set of 1..10;
set2: set of 'a'..'z';
set3: set of pear..orange;
Множество — фундаментальное понятие в современной математике, которое может быть использовано во многих алгоритмах.
В паскале тип множество может содержать только однотипные элементы порядкового типа. Эта особенность широко используется и обычно быстрее эквивалентной конструкции в языке, не поддерживающем множества. К примеру, для большинства компиляторов Паскаля:
if i in [5..10] then { проверка на принадлежность элемента множеству }
...
обработается быстрее, чем
if (i>4) and (i<11) then { проверка логическими условиями }
...
Для задания значения множества используется список элементов множества, отделенных запятыми и заключённый в квадратные скобки (как уже было показано выше):
var { секция объявления переменных }
d:set of char;
begin { начало блока }
d:=['a','b'];
...
В Паскале Йенсен и Вирта строки представлялись как упакованные массивы символов; следовательно, они имели фиксированную длину и обычно дополнялись до этой длины пробелами.
Информация о работе История развития проводных каналов связи