Участник:Alexsmail/Программирование 2020/новый черновик: различия между версиями

Содержимое удалено Содержимое добавлено
м оформление
Строка 60:
 
 
== 1.1 Hello world. Компиляция. JVM. Kotlin. Запуск программы с notepad. ==
 
<i>Приложение</i> – это программа, написанная на JVM, которая выполняется непосредственно на компьютере пользователя. Kotlin - является одним из языком программирования, на котором можно писать программы для Java Vitrual Machine (JVM). Рассмотрим сначала простую программу, затем в самых общих чертах опишу как это работает и как это можно запустить самому. Начнём с кода программы:
Строка 168:
 
 
=== 1.2 REPL ===
REPL является сокращением от read-eval-print loop — цикл "чтение — вычисление — вывод". REPL является форма организации простой интерактивной среды программирования в рамках средств интерфейса командной строки (CLI). В такой среде пользователь может вводить выражения, которые среда тут же будет вычислять, а результат вычисления отображать пользователю. Названия элементов ''цикла'' обозначают:
 
Строка 179:
И начинаем сначала (loop).
 
'''TODO:'''
 
=== 1.3 Компиляция и запуск ===
'''TODO:'''
 
Строка 294 ⟶ 295 :
'''TODO:''' * Intelij, Eclipse
 
=== * Advanced 1.4 Архитектура фон Ноймана ===
Этот раздел является полностью опциональным, его можно пропустить.
 
Строка 319 ⟶ 320 :
Разработанные фон Нейманом основы архитектуры вычислительных устройств оказались настолько фундаментальными, что получили в литературе название “фон-неймановской архитектуры”. Подавляющее большинство вычислительных машин на сегодняшний день – фон-неймановские машины. Исключение составляют лишь отдельные разновидности систем для параллельных вычислений, в которых отсутствует счетчик команд, не реализована классическая концепция переменной и имеются другие существенные принципиальные отличия от классической модели (примерами могут служить потоковая и редукционная вычислительные машины).
 
=== 1.4.1 * Advanced Принципы фон Неймана ===
 
'''Принцип однородности памяти.''' Команды и данные хранятся в одной и той же памяти и внешне в памяти неразличимы. Распознать их можно только по способу использования; то есть одно и то же значение в ячейке памяти может использоваться и как данные, и как команда, и как адрес в зависимости лишь от способа обращения к нему. Также этот принцип позволяет программе в процессе выполнения подвергать себя переработке (так в программе организуется выполнение циклов и подпрограмм, мы их рассмотрим в следующем разделе). Следствием принципа однородности является ''трансляция'' — перевод текста программы с языка высокого уровня на язык конкретной вычислительной машины.
Строка 330 ⟶ 331 :
'''Принцип двоичного кодирования.''' Согласно этому принципу, вся информация, как данные, так и команды, кодируются двоичными цифрами 0 и 1. Каждый тип информации представляется двоичной последовательностью и имеет свой формат. Последовательность битов в формате, имеющая определенный смысл, называется полем. В числовой информации обычно выделяют поле знака и поле значащих разрядов. В формате команды в простейшем случае можно выделить два поля: поле кода операции и поле адресов.
 
=== 1.4.2 * Advanced Узкое место архитектуры фон Неймана ===
 
Совместное использование шины для памяти программ и памяти данных приводит к узкому месту архитектуры фон Неймана, а именно ограничению пропускной способности между процессором и памятью по сравнению с объёмом памяти. Из-за того, что память программ и память данных не могут быть доступны в одно и то же время, пропускная способность канала "процессор-память" и скорость работы памяти существенно ограничивают скорость работы процессора — гораздо сильнее, чем если бы программы и данные хранились в разных местах. Так как скорость процессора и объём памяти увеличивались гораздо быстрее, чем пропускная способность между ними, узкое место стало большой проблемой.
Строка 336 ⟶ 337 :
Термин «узкое место архитектуры фон Неймана» ввел Джон Бэкус в 1977 в своей лекции «Можно ли освободить программирование от стиля фон Неймана?», которую он прочитал при вручении ему Премии Тьюринга.
 
=== * Advanced 1.4.3 Классическая структура компьютера ===
 
Устройство управления и арифметико-логическое устройство в современных компьютерах объединены в один блок - процессор, являющийся преобразователем информации, поступающей из памяти и внешних устройств. Сюда относятся выборка команд из памяти, кодирование и декодирование, выполнение различных (в том числе и арифметических) операций, согласование работы узлов компьютера. Более детально функции процессора будут обсуждаться ниже. Память (ЗУ) хранит информацию (данные) и программы. ЗУ у современных компьютеров "многоярусно" и включает:
Строка 350 ⟶ 351 :
В построенной по описанной схеме компьютер происходит последовательное считывание команд из памяти и их выполнение. Номер (адрес) очередной ячейки памяти, из которой будет извлечена следующая команда программы, указывается специальным устройством - счетчиком команд в УУ. Его наличие также является одним из характерных признаков рассматриваемой архитектуры.
 
=== * Advanced 1.4.4 Шинная архитектура. ===
 
В предыдущем разделе была описана классическая структура компьютера, соответствующая вычислительным машинам первого и второго поколений. Естественно, что в результате бурного развития технологии производства средств вычислительной техники такая структура не могла не претерпеть определенных прогрессивных изменений.