2. Истина - ложно
• Джордж Буль 1815
Машинный код, Ассемблер, Разрядность,
Языки программирования условно делятся
на языки высокого уровня и низкого.
Язык программирования называется Turing-complete
тогда, когда он по вычислительным возможностям
эквивалентен машине Тьюринга. То есть для
любой программы, записанной на ленте этой
машины, можно написать программу на данном
языке, которая при тех же входных данных будет
давать тот же результат. Большинство
используемых в программировании языков
(процедурные, функциональные, объектно-
ориентированные) полны по Тьюрингу.
3. Объектно-ориентированное (ООП)
и Функциональное (ФП) программирование
• Основной доктриной ООП является то, что данные и операции над
ними сильно связаны: объект содержит данные и реализацию
операций над данными. Он скрывает всё это от других объектов через
интерфейс – набор методов или сообщений, на которые он реагирует.
Таким образом, центральной моделью абстракции являются сами
данные, спрятанные за небольшим API в виде интерфейса.
• Основной доктриной ФП является то, что данные слабо связаны с
функциями. Над одним и тем же набором данных можно совершать
разные действия, а центральной моделью абстракции является
функция, а не структура данных. Функции прячут их реализацию, а
абстракции языка общаются с функциями.
4. C/С++ ще за царя Тимка
• Неуправляемые языки
• Управляемые языки
Низкий – высокий уровень вхождения