Введение в программирование
Домашнее задание:
2.33M
Категория: ПрограммированиеПрограммирование

Введение в программирование

1. Введение в программирование

2.

Компьютерная программа – это комплекс
задач, выполняемых вычислительной
техникой последовательно с целью получения
определенного результата пользователем.
Если говорить еще проще, то программы
позволяют выполнять поставленные задачи
перед пользователем и обеспечивают
правильную работу подключенных устройств.
Например, напечатать и
распечатать текст, составить и
заполнить таблицу, обработать
фотографию или видео,
посмотреть видео, фото,
текстовый документ, отправить
письмо по электронной почте.

3.

Программирование - это сама основа цифровой эпохи, в которой мы живем
сегодня. Каждый раз, когда вам нравится публикация в социальных сетях, вы
отправляете электронное письмо или устанавливаете будильник на своем
телефоне, язык программирования работает за кулисами, дергая за ниточки.
Но с чего все началось? И что стимулировало его рост в ведущую отрасль,
существующую сегодня? Прежде всего, почему знание истории языков
программирования важно для подбора IT специалистов и разработчиков ?
Эта ретроспектива продемонстрирует, насколько компьютерное программирование
развилось за эти годы. Он вернет вас от ранних языков и сложного машинного кода к
сложному, удобочитаемому языку, на котором сегодня работают наши любимые
технологии.
Первый язык программирования
Знаете ли вы, что первый в мире язык компьютерного программирования был
изобретен еще в 1843 году? Ада Лавлейс изобрела первый в истории машинный
алгоритм для одной из первых вычислительных машин, который она записала на
листе бумаги, потому что в то время компьютеров не существовало! С тех пор языки
программирования, очевидно, прошли долгий путь, но для того, чтобы понять
историю языков, нужно сначала понять их происхождение.

4.

Язык программирования – это любой набор правил, который преобразует строки или
графические элементы программы в случае визуальных языков программирования в различные
виды вывода машинного кода.
Языки программирования являются одним из видов компьютерных языков и используются в
компьютерном программировании для реализации алгоритмов.
Язы́к программи́рования — формальный язык, предназначенный для
записи компьютерных программ. Язык программирования определяет
набор лексических, синтаксических и семантических правил,
определяющих внешний вид программы и действия, которые выполнит
исполнитель (обычно — ЭВМ) под её управлением.
Со времени создания первых программируемых машин человечество
придумало более восьми тысяч языков программирования
(включая эзотерические, визуальные и игрушечные). Каждый год их число
увеличивается.
Некоторыми языками умеет пользоваться только небольшое число их
собственных разработчиков, другие становятся известны миллионам
людей. Профессиональные программисты могут владеть несколькими
языками программирования.

5.

РАННИЕ ЭТАПЫ РАЗВИТИЯ
Можно сказать, что первые языки программирования
возникали ещё до появления современных электронных
вычислительных машин: уже в XIX веке были изобретены
устройства, которые можно с долей условности назвать
программируемыми — к примеру, музыкальная шкатулка (и
позднее механическое пианино) посредством
металлического цилиндра и Жаккардовый ткацкий
станок (1804) посредством картонных карт. Для управления
ими использовались наборы инструкций, которые в рамках
современной классификации можно считать
прототипами предметно-ориентированных языков
программирования.
Значимым можно считать «язык», на котором леди Ада
Августа (графиня Лавлейс) в 1842 году написала программу
для вычисления чисел Бернулли для аналитической
машины Чарльза Бэббиджа, ставшей бы, в случае
реализации, первым компьютером в мире, хотя и
механическим — с паровым двигателем.

6.

Изначально программирование имело крайне примитивный вид и
практически не имело отличий от упорядоченного бинарного кода
с формализованным подходом. По сути, при зарождении сферы
отличий языка программирования от компьютерного кода было
немного. Очевидных и естественных удобств для программиста не
существовало, он обязан был обладать знаниями числовых кодов для
каждой команды машины. Даже распределение памяти для
выполнения команд ложилось на специалиста.
Для упрощения обращения с ЭВМ люди стали активно
разрабатывать языки, одним из первых стал Ассемблер. Для
отображения переменных стали использоваться символьные
наименования. Вместо числовых операций человеку достаточно знать
мнемонические имена, их запоминание в разы облегчалось. Уже на
этом этапе языки программирования стали более приближёнными к
понятному для человека языку.
К первооткрывателям среди языков программирования
относится Фортран – это сокращённое сочетание 2 слов: Formula и
Translation. Создан уже в середине 50-х. До сих пор язык используется
благодаря лёгкости и простоте написания, а также развитой системе
библиотек для Фортран. Чаще используется для научных и
инженерных подсчётов, а также активно применяется в физичке и
остальных науках, связанных с математикой.

7.

УЗКОНАПРАВЛЕННЫЕ ЯЗЫКИ
Из-за увеличения сфер использования ЭВМ появились и другие языки
для отдельных разработок в новых сферах:
экономическое направление оставалось незанятым до появления Кобол;
Снобол – обрабатывает алгоритмы, связанные с текстами;
Лисп. Работает на основании алгоритмов для отработки символов.
Активно используется для формирования искусственного интеллекта.
Уже в 1968 г. был впервые запущен конкурс, в котором главным местом
являлось звание лучшего языка программирования для начала
карьерного пути. Данные планировалось использовать для обучения
специалистов. Победу одержал Алгол-68, но он остался малоизвестным,
о популярности и речь не идёт.

8.

Специально для участия в конкурсе был создан Паскаль,
разработчиком являлся Никлаус Вирт. Язык весьма
доступный, удобный и объединяет немало мощных
инструментов для структурирования информации. Несмотря
на изначальную разработку с целью обучения студентов,
Паскаль получил широкое распространение и активно
развивался. Даже сегодня он является одним из лучших и
известнейших языков программирования.
Для обучения детей в школах был создан Лого, у истоков
стоял Самуэль Пайперт. Достоинства – простота работы и
обилие возможностей.
В школах стал преподаваться простой язык Бейсик, он легко
взаимодействует с ЭВМ в качестве прямого диалога. Время
никак не повлияло на эту сферу, до сих пор Бейсик является
самым простым языком для начала изучения большинства
распространённых направлений программирования.

9.

СОЗДАНИЕ ЯЗЫКА C
Развитие возможностей
вычислительного оборудования
привело к необходимости
написания ёмких программ для
управления ЭВМ. Это место по
праву занял язык Си, который
стал активно использоваться в
70-х годах.
Явным достоинством языка
является его универсальность.
Он превосходит Паскаль
благодаря наличию вложенных
возможностей сотрудничества с
разными машинными командами
и подходящими частями памяти.

10.

Си используется повсеместно в качестве инструментального языка для
написания операционных платформ, трансляционных устройств, баз
данных и остальных прикладных, системных задач. Си не имеет чёткой
направленности, он подходит для многих задач из-за эффективности,
лёгкости переноса и экономного потребления ресурсов.
Чаще всего Си по скорости обработки данных сопоставим с Ассемблером,
производительность программ на обоих языках будет приблизительно
равной. В небольшом языке заложена немалая мощность.

11.

ПРОЛОГ И АДА
Внедрение функционального программирования
неизбежно повлекло создание Пролога. Задачи
языка сводились к анализу и взаимодействию с
человеческими языками. Логика приложения
формальна, она оптимально подходит для
автоматического решения задач и теорем.
Только в 80-х годах был
разработан язык Ада. Он
расширяет классическое
понимание и свойства языков
того периода. Ада могла решать
задачи в режиме реального
времени и моделировать
независимые решения.

12.

КЛАССИФИКАЦИЯ
Сегодня разработаны классификации языков по уровню работы, это распределение
самое распространённое. Выделяют 3 основных уровня:
Низкий. Сюда относятся различные машинные языки или разновидности с
символическим кодирование типа Ассемблера и Автокода. За основу взяты
операторы машинных команд, только разработаны с привязкой к мнемоническому
коду. Операндами являются уже не точные адреса, а символьное обозначение имён.
Все модели разработаны для отдельных разновидностей ПК, они являются машиннозависимыми. В подобных языках отмечается сильная зависимость языка от
внутренних особенностей системы;
Высокий. Языки встречаются куда чаще, они более удобны в использовании. К ним
причисляются: Алгол, С, Пролог, Паскаль, Бейсик, Фортран и другие. Перечисленные
языки не имеют жёсткой зависимости от машины, ведь они основываются на
возможностях системы операндов, которые подобны для классовых алгоритмов.
Недостатками высокого уровня являются большая ресурсоёмкость и медленное
исполнение;
Сверхвысокий. Представителей языков крайне мало, только APL и Алгол-68. Их
считают сверхвысокого уровня из-за разработки сверхмощных операторов.

13.

Согласно другой классификации языки делятся на:
символьные – Пролог, Лисп и Снобол;
вычислительные – Паскаль, С, Алгол, Бейсик, Фортран.
Опера́нд (англ. operand) в математике и в языках
программирования ― аргумент операции; данные, которые
обрабатываются командой; математическое выражение,
задающее значение аргумента операции. Иногда операндом
называют место, позицию в тексте, где должен стоять
аргумент операции.

14.

НАПРАВЛЕНИЯ РАЗВИТИЯ
Информатика в современном мире развивается в 3 ключевых
направлениях:
Процедурное появилось в период активнейшего развития компьютеров
и других вычислительных устройств, с тем пор широко используется. В
процедурных направлениях присутствуют выраженные описания
действий, необходимых к выполнению. Для получения результата всегда
проводится определённая процедура, которую составляют различные
последовательности манипуляций.
Процедурные языки дополнительно разделяются на:
•Структурные. В них используется один оператор для записи
цельных алгоритмом: циклов, функцию, ветвлений и остального.
Более известны: Паскаль, Ада и С.
•Операционные. Применяют несколько различных действий. Среди
самых известных разновидностей: Фокал, Фортран и Бейсик.

15.

Непроцедурные. Языки программирования имеют декларативную структуру,
появление которой приходится на 70-е года. Активнее всего начали развиваться в
80-х годах после появления проекта формирования 5 поколения ЭВМ.
Они также разделяются на:
Функциональные. Программа выполняет исчисление определённой
функции, которая берёт за основу другие относительно простые алгоритмы и
более простые задачи. В основе функционального направления используется
основной элемент – рекурсия. Она подразумевает расчёт значений функции с
помощью задействования её в других элементах. В языке отсутствуют циклы
и методика присваивания значений.
Логические. Программа вовсе не требует описание действий, её основу
составляют соотношения данных и их значения. Только после расчёта можно
получать ответы на вопросы. После перебирания известных параметров
выводится ответ. В программе отсутствует метод или порядок обнаружения
ответа, он неявным образом устанавливается языком. Ярким представителем
является Пролог. Из направления полностью устранено алгоритмическое
мышление, только статические отношения между объектами, а вся динамика
сокрыта от разработчика и сводится к перебору данных.

16.

Объектно-ориентированные языки, все они являются разновидностью
высокого уровня программирования. Подобные языки не нуждаются в
описании чёткой последовательности манипуляций для получения
результата задачи, но отдельные компоненты процедурного
направления присутствуют. Пользователям значительно проще
работать с такими языками, так как они обладают доступным и богатым
интерфейсом. Лучшим примером подобного направления с визуальным
общением является Object Pascal.
Существуют языки для написания сценариев, известными являются Rexx,
Tcl, Perl и Python, а также языки оболочек систем Unix. В них
разрабатывается индивидуальный стиль написания кода, который
отличается от известного принципа системного уровня
программирования. Они не используются для создания приложений на
нижнем уровне, скорее для комбинирования различных компонентов из
разных языков, из которых составляется набор отдельных функций.

17.

История языков программирования: хронология
Ниже приведен график истории языков программирования. Первые известные языки
были сложными машинными кодами, которые вручную вводились в первые
вычислительные машины. Как вы понимаете, компьютерное программирование быстро
превратилось из машинных кодов в полностью автоматизированный, читаемый
человеком код.
1843: Машинный алгоритм Ады Лавлейс
Ада Лавлейс изобретает первый в истории машинный алгоритм для разностной машины
Чарльза Бэббиджа, который закладывает основу для всех языков программирования.
1944-45: Планкалкюль
Где-то между 1944-45 годами Конрад Цузе разработал первый «настоящий» язык
программирования под названием Plankalkül (Расчет плана). Язык Zeus (помимо
прочего) позволял создавать процедуры, в которых хранятся фрагменты кода, которые
можно было вызывать снова и снова для выполнения рутинных операций.
1949: Язык Ассемблера
Ассемблер использовался в автоматическом калькуляторе с электронным
запоминанием задержки (EDSAC). Ассемблер был разновидностью низкоуровневого
языка программирования, который упростил язык машинного кода. Другими словами,
конкретные инструкции, необходимые для работы с компьютером.

18.

1949: Shortcode
Шорткод (или сокращенный код) был первым языком высокого уровня (HLL), предложенным
Джоном Макколи в 1949 году. Однако именно Уильям Шмитт реализовал его для компьютера
BINAC в том же году и для UNIVAC в 1950 году.
1952: Автокодирование
Автокод был общим термином, используемым для семейства языков программирования.
Autocode, впервые разработанный Аликом Гленни для компьютера Mark 1 в Университете
Манчестера, был первым в истории скомпилированным языком, который был реализован, что
означает, что он может быть переведен непосредственно в машинный код с помощью
программы, называемой компилятором. Автокод использовался на первых вычислительных
машинах Ferranti Pegasus и Sirius в дополнение к Mark 1.
1957: Fortran
FORmula TRANslation или FORTRAN был создан Джоном Бэкусом и считается старейшим
языком программирования, используемым сегодня. Язык программирования был создан для
научных, математических и статистических вычислений высокого уровня. FORTRAN до сих
пор используется в некоторых из самых передовых суперкомпьютеров в мире.
1958: ALGOL (Алгоритмический язык)
Алгоритмический язык или АЛГОЛ был создан совместным комитетом американских и
европейских компьютерных ученых. Алгол послужил отправной точкой для разработки
некоторых из наиболее важных языков программирования, включая Pascal, C, C ++ и Java.

19.

1958: LISP (обработчик списков)
Процессор списков или LISP был изобретен Джоном Маккарти в Массачусетском
технологическом институте (MIT). Первоначально предназначенный для
искусственного интеллекта, LISP является одним из старейших языков
программирования, которые все еще используются сегодня, и его можно
использовать вместо Ruby или Python. Такие компании, как Acceleration, Boeing и
Genworks, по-прежнему используют LISP в своих технических стеках.
1959: КОБОЛ (Общий бизнес-ориентированный язык)
Общий бизнес-ориентированный язык (COBOL) - это язык программирования,
лежащий в основе многих процессоров кредитных карт, банкоматов, телефонных и
сотовых вызовов, сигналов больниц и систем сигналов светофора (и это лишь
некоторые из них). Разработкой языка руководила доктор Грейс Мюррей Хоппер, и
он был разработан таким образом, чтобы его можно было использовать на
компьютерах всех марок и типов. COBOL до сих пор используется в первую
очередь для банковских систем.
1964: BASIC (универсальный символьный код инструкций для начинающих)
Универсальный код символических инструкций для начинающих или BASIC был
разработан группой студентов Дартмутского колледжа. Этот язык был написан для
студентов, которые плохо разбирались в математике или компьютерах. Этот язык
был разработан основателями Microsoft Биллом Гейтсом и Полом Алленом и стал
первым товарным продуктом компании.

20.

1970: ПАСКАЛЬ
Названный в честь французского математика Блеза Паскаля, Никлаус Вирт разработал язык
программирования в его честь. Он был разработан как средство обучения компьютерному
программированию, что означало, что его легко освоить. Apple предпочитала его на заре своей
деятельности из-за простоты использования и мощности.
1972: Smalltalk
Smalltalk, разработанный в исследовательском центре Xerox в Пало-Альто Аланом Кей, Адель
Голдберг и Дэном Ингаллсом, позволял программистам изменять код на лету. Он представил
множество аспектов языка программирования, которые сегодня являются видимыми языками,
такими как Python, Java и Ruby. Такие компании, как Leafly, Logitech и CrowdStrike, заявляют, что
используют Smalltalk в своих технических стеках.
1972: C (Си)
Разработан Деннисом Ричи из Bell Telephone Laboratories для использования с операционной
системой Unix. Он был назван C, потому что был основан на более раннем языке под названием
«B». Многие из ведущих в настоящее время языков являются производными от C, включая; C #,
Java, JavaScript, Perl, PHP и Python. Он также использовался / до сих пор используется такими
крупными компаниями, как Google, Facebook и Apple.
1972: SQL (в то время SEQUEL)
SQL был впервые разработан исследователями IBM Рэймондом Бойсом и Дональдом
Чемберленом. SEQUEL (как его тогда называли) используется для просмотра и изменения
информации, хранящейся в базах данных. В настоящее время язык является аббревиатурой SQL, что означает язык структурированных запросов. Существует множество компаний,
использующих SQL, и некоторые из них включают Microsoft и Accenture.

21.

1980/81: Ада
Изначально Ada была разработана командой во главе с Джин Ичбиа из CUU Honeywell Bull по
контракту с Министерством обороны США. Названный в честь математика середины 19-го века Ады
Лавлейс, Ada представляет собой структурированный, статически типизированный, императивный,
объектно-ориентированный язык программирования высокого уровня с широким спектром
возможностей. Ада была расширена из других популярных в то время языков программирования,
таких как Паскаль. Ada используется в системах управления воздушным движением в таких странах,
как Австралия, Бельгия и Германия, а также во многих других транспортных и космических проектах.
1983: C ++
Бьярн Страуструп модифицировал язык C в Bell Labs, C ++ - это расширение C с такими
улучшениями, как классы, виртуальные функции и шаблоны. Он был включен в 10 лучших языков
программирования с 1986 года и получил статус Зала славы в 2003 году. C ++ используется в MS
Office, Adobe Photoshop, игровых движках и другом высокопроизводительном программном
обеспечении.
1983: Objective-C
Objective-C, разработанный Брэдом Коксом и Томом Лавом, является основным языком
программирования, используемым для написания программного обеспечения для операционных
систем Apple macOS и iOS.
1987: Perl
Perl был создан Ларри Уоллом и представляет собой универсальный язык программирования
высокого уровня. Первоначально он был разработан как язык сценариев, предназначенный для
редактирования текста, но в настоящее время он широко используется для многих целей, таких как
CGI, приложения баз данных , системное администрирование, сетевое программирование и
графическое программирование.

22.

1990: Haskell
Haskell - это язык программирования общего назначения, названный в честь американского логика и
математика Хаскелла Брукса Карри. Это чисто функциональный язык программирования, то есть в первую
очередь математический. Он используется во многих отраслях, особенно в тех, которые имеют дело со
сложными вычислениями, записями и обработкой чисел. Как и многие другие языки программирования той
эпохи, не так уж часто можно увидеть, что Haskell используется для хорошо известных приложений. С учетом
сказанного, язык программирования был использован для написания ряда игр, одна из которых - Nikki and the
Robots.
1991: Python
Названный в честь британской комедийной труппы «Монти Пайтон», Python был разработан Гвидо Ван
Россумом. Это универсальный язык программирования высокого уровня, созданный для поддержки
различных стилей программирования и приятный в использовании (ряд руководств, примеров и инструкций
часто содержат ссылки на Monty Python). Python по сей день является одним из самых популярных языков
программирования в мире, который используют такие компании, как Google, Yahoo и Spotify.
1991: Visual Basic
Visual Basic, разработанный Microsoft, позволяет программистам использовать стиль перетаскивания для
выбора и изменения предварительно выбранных фрагментов кода через графический интерфейс
пользователя (GUI). В наши дни этот язык не используется слишком часто, однако Microsoft частично
использовала Visual Basic для ряда своих приложений, таких как Word, Excel и Access.
1993: Ruby
Ruby, созданный Юкихиро Мацумото, представляет собой интерпретируемый язык программирования
высокого уровня. Язык обучения, на который повлияли Perl, Ada, Lisp и Smalltalk - среди прочих. В основном
Ruby используется для разработки веб-приложений и Ruby on Rails. Twitter, Hulu и Groupon - известные
примеры компаний, использующих Ruby.

23.

1995: Java
Java - это универсальный язык высокого уровня, созданный Джеймсом Гослингом для
проекта интерактивного телевидения. Он обладает кросс-платформенной
функциональностью и неизменно входит в число самых популярных языков
программирования в мире. Java можно найти везде, от компьютеров до смартфонов и
парковочных счетчиков.
1995: PHP
Ранее известный как «Персональная домашняя страница», что теперь означает
«Препроцессор гипертекста», PHP был разработан Расмусом Лердорфом. Его основное
применение включает создание и поддержку динамических веб-страниц, а также
разработку на стороне сервера . Некоторые из крупнейших компаний по всему миру
используют PHP, включая Facebook, Wikipedia, Digg, WordPress и Joomla.
1995: JavaScript
JavaScript был создан Бренданом Эйхом, этот язык в основном используется для
динамической веб-разработки, документов PDF, веб-браузеров и виджетов рабочего стола.
Почти каждый крупный веб-сайт использует JavaScript. Gmail, Adobe Photoshop и Mozilla
Firefox включают несколько хорошо известных примеров.
2000: C #
Разработанный в Microsoft с надеждой на объединение вычислительных возможностей C
++ с простотой Visual Basic, C # основан на C ++ и имеет много общего с Java. Этот язык
используется почти во всех продуктах Microsoft и используется в основном при разработке
настольных приложений.

24.

2003: Scala
Scala, разработанная Мартином Одерски, объединяет математическое функциональное
программирование и организованное объектно-ориентированное программирование.
Совместимость Scala с Java делает его полезным при разработке под Android. Linkedin,
Twitter, Foursquare и Netflix - это всего лишь несколько примеров многих компаний, которые
используют Scala в своих технических стеках.
2003: Groovy
Унаследованный от Java, Groovy был разработан Джеймсом Страчаном и Бобом
МакВиртером. Язык повышает продуктивность, поскольку он лаконичен и прост в
изучении. Некоторые известные компании, которые используют Groovy в своих
технических стеках, - это Starbucks, Transferwise и Craftbase.
2009: Golang (Go)
Go был разработан Google для решения проблем, возникающих из-за больших
программных систем. Благодаря своей простой и современной структуре Go завоевал
популярность среди некоторых крупнейших технологических компаний по всему миру,
таких как Google, Uber, Twitch и Dropbox.
2014: Swift
Разработанный Apple в качестве замены C, C ++ и Objective-C, Swift был разработан с
целью быть проще, чем вышеупомянутые языки, и оставлять меньше места для ошибок.
Универсальность Swift означает, что его можно использовать для настольных, мобильных
и облачных приложений. Ведущее языковое приложение Duolingo запустило новое
приложение, написанное на Swift.

25.

КАКИЕ СТАРЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ ВСЕ ЕЩЕ
ИСПОЛЬЗУЮТСЯ?
Не все языки программирования существуют вечно. Будь то результат развития технологий или
просто замена более сложным языком. С учетом сказанного, ИТ специалисты по-прежнему
используют некоторые старые языки программирования:
FORTRAN
Первоначальная версия FORTRAN была предложена в IBM Джоном Бэкусом еще в 1953 году.
Это был первый компилятор-оптимизатор, который широко использовался в научной работе,
поскольку его оптимизированный код выгодно конкурировал с написанным вручную кодом
ассемблера. Этот язык до сих пор используется на некоторых из самых быстрых
суперкомпьютеров в мире. С 1953 года была выпущена серия обновлений, последняя версия
которых была выпущена в 2018 году.
COBOL
COBOL был разработан еще в 1959 году и был одним из первых языков программирования
высокого уровня. Несмотря на то, что COBOL был изобретен так давно, он по-прежнему широко
распространен. В одних только США 43% банковских систем построены на COBOL, что
составляет 95% операций с банкоматами и 80% транзакций, совершаемых лично.

26.

ОПРЕДЕЛЕНИЕ, НАЗНАЧЕНИЕ ПАРАЛЛЕЛЬНОГО
ПРОГРАММИРОВАНИЯ
Существуют различные способы написания программ, которые условно можно разделить на
три группы:
Последовательное программирование с дальнейшим автоматическим распараллеливанием.
Непосредственное формирование потоков параллельного управления, с учетом особенностей
архитектур параллельных вычислительных систем или операционных систем.
Описание параллелизма без использования явного управления обеспечивается заданием
только информационных связей. Предполагается, что программа будет выполняться на
вычислительных системах с бесконечными ресурсами, операторы будут запускаться
немедленно по готовности их исходных данных.
Каждый из перечисленных подходов обладает своими достоинствами и недостатками
параллельное программирование.
Параллельные вычисления - способ организации компьютерных вычислений, при котором
программы разрабатываются, как набор взаимодействующих вычислительных процессов,
работающих асинхронно и при этом одновременно.
Параллельное программирование - это техника программирования, которая использует
преимущества многоядерных или многопроцессорных компьютеров и является подмножеством
более широкого понятия многопоточности (multithreading).

27.

Многоядерные вычисления
Использование параллельного программирования становится наиболее
необходимым, поскольку позволяет максимально эффективно использовать
возможности многоядерных процессоров и многопроцессорных систем. По ряду
причин, включая повышение потребления энергии и ограничения пропускной
способности памяти, увеличивать тактовую частоту современных процессоров стало
невозможно. Вместо этого производители процессоров стали увеличивать
их производительность за счет размещения в одном чипе нескольких
вычислительных ядер, не меняя или даже снижая тактовую частоту. Поэтому для
увеличения скорости работы приложений теперь следует по-новому подходить к
организации кода, а именно - оптимизировать программы под многоядерные
системы.
Множественные потоки команд/данных (Классификация М.Флинна)
Самой ранней и наиболее известной является классификация архитектур
вычислительных систем, предложенная в 1966 году М.Флинном. Классификация
базируется на понятии потока, под которым понимается последовательность
элементов, команд или данных, обрабатываемая процессором. На основе числа
потоков команд и потоков данных Флинн выделяет четыре класса
архитектур: SISD, MISD, SIMD, MIMD. Описание классов приведено

28.

Ранжирование архитектур по обработке потоков

29. Домашнее задание:

• Написать краткое эссе по теме «Портрет
современного IТшника»
• Загрузить результат в дневник
• (!) Помните, формат txt дневник не поддерживает и если вы сделали
задание в блокноте, то файл надо будет поместить в архив. Остальные
форматы файлов загружаются нормально.
English     Русский Правила