Step 2 (S-6998)

From Stepik Wiki
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/537/step/2

Step 2 (S-6998) 1.png

[00:00 - 00:16] Добро пожаловать на 2-ю лекцию. В данной лекции мы обсудим то, как работают программы и научимся пользоваться указателями. Для того чтобы разобраться в том как работает программа надо поговорить об архитектуре современных компьютеров.


[00:16 - 00:32] Современные компьютеры строятся по принципам архитектуры, эти принципы были сформулированы в 1 половине 20 века и являются основополагающими для разработки современных компьютеров.


[00:32 - 00:50] 1-й принцип. Это принцип однородности памяти, он говорит о том что в памяти одновременно хранятся как данные программы так и команды.


[00:50 - 01:08] Конкурирующая архитектура, которая была также разработана в 1-й половине 20 века, называлось гарвардской архитектурой, и как раз по 1 принципу они различались. Предлагалось хранить отдельно данные программы и отдельно код программы, ну так как она не победила, то сейчас мы живем в мире где данные хранятся вместе с кодом программы.


[01:08 - 01:26] 2-й принцип это принцип адресности он говорит о том, что память программы можно представлять как последовательность ячеек пронумерованных целыми числами и каждую ячейку можно прочитать, а также записать в память просто обратившись к непременной.


[01:26 - 01:40] 3-й принцип, это принцип программного управления, он означает, что выполняемая программа, управляется посредством последовательности команд, эти команды выполняются одна за другой, до тех пор, пока не выполнится специальная команда - возврат условного перехода, или безусловный переход.


[01:40 - 01:56] И последний принцип, это принцип двоичного кодирования. Для нас не является само собой разумеющимся, что все данные представляются в виде двоичных данных.


[01:56 - 02:10] Но в программе данные представляются в виде двоичных данных. Отдельно, стоит упомянуть, что есть и другие варианты, например троичные компьютеры.


[02:10 - 02:27] Важно отметить, что принцип однородности памяти, позволяет написать программу, которая будет модифицировать свой код согласно норм современного программирования. Но существуют некоторые алгоритмы, например реализация алгоритма призм, которые принято реализовывать в таком виде, который на самом деле как раз не использует трюк с модификацией собственного кода.