Архитектура и принцип работы компьютера 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Архитектура и принцип работы компьютера



Принцип работы компьютера cформулирован Джоном фон Нейманом в 1946 году и используется в современных компьютерах с небольшими изменениями.

Архитектура компьютера фон Неймана

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

Регистры - быстрые ячейки памяти. Их около десятка, так как подобная память - очень дорогая.

Программа и данные хранятся в оперативной памяти (ОП). ОП однородна, состоит из ячеек единого типа, каждая из которых имеет адрес.

Счетчик команд хранит адрес текущей команды.

Алгоритм выполнения программы

  1. Очередная команда выбирается в регистр команд и увеличивается счетчик команд.
  2. Параметры команды записываются в регистр операндов.
  3. Сумматор (арифметико-логическое устрйство, АЛУ) выполняет операцию над операндами и сохраняет результат в памяти/регистрах.
  4. Если не встречена команда завершения, то осуществляется переход к п.1.

Классификация языков программирования. Компиляторы и интерпретаторы

По степени приближенности к машинному языку языки программирования делятся на две группы.

1. Языки программирования низкого уровня (ассемблеры)

Пример. MOV AX,1 (записать в регистр АХ число 1)

Эти команды один в один переводятся в машинные коды.

Преимущества языков программирования низкого уровня: эффективность.

Недостатки языков программирования низкого уровня: непереносимость, сложность составления больших программ.

2. Языки программирования высокого уровня

Пример. if x<y then max:=y else max:=x

Компиляторы и интерпретаторы

Компилятор - программа, преобразующая текст программы на языке программирования в машинные коды (в более общем смысле компилятор - это программа, преобразующая текст программы из одного представления в другое, например, в байт-код, в текст программы на ассемблере и т.п.)

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

Устройством, выполняющим машинные коды, является процессор компьютера.

Для большинства языков программирования существуют компиляторы, переводящие программу на ЯП в машинные коды (Pascal, С++).

Для таких языков как Basic, JavaScript имеются интерпретаторы, выполняющие текст программы команда за командой. Скорость такой интерпретации - низкая (приблизительно в 100-1000 раз медленнее машинных кодов).

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

Обзор языков программирования высокого уровня (таблица)

Универсальные языки Функциональные и логические языки Чистые объектно-ориентированные языки Параллельные языки Языки сценариев
Fortran (1954) LISP (1958) функциональный Simula (1967) Occam (1982) JavaScript (1996)
Cobol (1960) Prolog (1971) логический SmallTalk (1972) Ada95 (1995) Perl (1996)
Algol (1960)   Eiffel (1986)   Python (1996)
Basic (1963)        
PL/1 (1964)        
Pascal (1970)        
C (1972)        
Modula-2 (1978)        
Ada (1983)        
C++ (1988)        
Java (1995)        
C# (2000)        
Oberon (1988)        
Zonnon (2002)        

Язык программирования Паскаль

Первая программа на языке программирования Паскаль

program first;
// Программа вычисления длины окружности и площади круга
// Автор: Михалкович С.С.
// Дата написания: 14.09.05
const Pi=3.14;
var
r: real; // входные данные - радиус круга
S,C: real; // выходные данные - площадь круга и длина окружности
begin
write('Введите радиус окружности');
readln(r);
S:=Pi*r*r;
C:=2*Pi*r;
writeln('Длина окружности равна ',С);
writeln('Площадь круга равна ',S);
end.

Комментарии в программе

{ } и (* *) – могут быть вложенными

// – до конца строки.

Комментарии игнорируются компилятором и предназначены для пояснения текста программы.

Общая структура программы

program имя; // заголовок программы (не обязателен)
раздел подключения внешних модулей // uses...
раздел описаний
begin
операторы
end.

Выделенные слова называются зарезервированными. Они используются для описания конструкций языка и не могут использоваться в качестве имен. То есть нельзя описать, скажем, переменную с именем begin, но можно - с именем integer.

Правила записи программ

  1. Большие и маленькие буквы не различаются.
  2. Операторы разделяются символом ";" (точка с запятой). После последнего оператора тоже может ставиться точка с запятой; в этом случае считается, что за этим оператором стоит пустой оператор.
  3. Между лексемами может содержаться произвольное количество пробелов, символов перехода на новую строку, знаков TAB.

Лексемы языка Pascal

1) Специальные символы

знаки операций::= >= =
ограничители:;, (
зарезервированные слова: begin end var

2) Идентификаторы (используются в качестве имен объектов программы).

Определение. Идентификатор - последовательность латинских букв или цифр, начинающаяся с буквы. К буквам также относят символ _ (подчеркивания).

_a1 - идентификатор
3dnews - не идентификатор

3) Константные значения

3.14
1E-12
'Hello'

4) Комментарии.

Типы, переменные и константы

Данные в программе делятся на переменные и константы. Константы бывают двух типов: именованные (Pi) и неименованные (3.14). Каждая переменная и константа имеют определенный тип. Тип определяет, как данные хранятся в памяти, диапазон значений типа и операции, которые можно выполнять над данными этого типа.



Поделиться:


Последнее изменение этой страницы: 2016-09-20; просмотров: 340; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.15.143.181 (0.007 с.)