Программного обеспечения


Программное обеспечение представляет собой набор компьютерных программ и связанной с ними документации и данных . [1] Это в отличие от аппаратного обеспечения , из которого построена система и которое фактически выполняет работу.

На самом низком уровне программирования исполняемый код состоит из инструкций машинного языка , поддерживаемых отдельным процессором — обычно центральным процессором (ЦП) или графическим процессором (ГП). Машинный язык состоит из групп двоичных значений , обозначающих инструкции процессора , которые изменяют состояние компьютера по сравнению с его предыдущим состоянием. Например, инструкция может изменить значение, хранящееся в определенной ячейке памяти компьютера, — эффект, который пользователь не может наблюдать напрямую. Инструкция может также вызывать одну из многих операций ввода или вывода ., например, вывод текста на экран компьютера; вызывая изменения состояния, которые должны быть видны пользователю . Процессор выполняет инструкции в том порядке, в котором они предоставлены, если только он не получает указание «перейти» к другой инструкции или не прерывается операционной системой. По состоянию на 2015 год большинство персональных компьютеров , смартфонов и серверов имеют процессоры с несколькими исполнительными блоками или несколько процессоров, выполняющих вычисления вместе, и вычисления стали гораздо более параллельной деятельностью, чем в прошлом.

Большинство программного обеспечения написано на языках программирования высокого уровня . Они проще и эффективнее для программистов, потому что они ближе к естественным языкам , чем к машинным. [2] Языки высокого уровня переводятся на машинный язык с помощью компилятора , интерпретатора или их комбинации. Программное обеспечение также может быть написано на языке ассемблера низкого уровня , который сильно соответствует инструкциям машинного языка компьютера и переводится на машинный язык с помощью ассемблера .

Алгоритм того , что должно было стать первой частью программного обеспечения, был написан Адой Лавлейс в 19 веке для планируемой аналитической машины . [3] Она создала доказательства , чтобы показать, как машина будет вычислять числа Бернулли . [3] Из-за доказательств и алгоритма она считается первым программистом. [4] [5]

Первая теория программного обеспечения, предшествовавшая созданию компьютеров в том виде, в каком мы их знаем сегодня, была предложена Аланом Тьюрингом в его эссе 1935 года « О вычислимых числах с приложением к Entscheidungsproblem» (задаче принятия решения). [ Править ] Это в конечном итоге привело к созданию академических областей информатики и разработки программного обеспечения; обе области изучают программное обеспечение и его создание. [ править ] Информатика — это теоретическое изучение компьютера и программного обеспечения (эссе Тьюринга — пример информатики), тогда как программная инженерия — это применение инженерных принципов к разработке программного обеспечения. [ нужна ссылка ]До 1946 года программное обеспечение еще не было программами, хранящимися в памяти цифровых компьютеров с хранимой программой, как мы это понимаем сейчас; вместо этого первые электронные вычислительные устройства были перемонтированы, чтобы «перепрограммировать» их. [ нужна ссылка ]

В 2000 году Фред Шапиро, библиотекарь Йельской школы права, опубликовал письмо, в котором говорилось, что статья Джона Уайлдера Тьюки 1958 года «Преподавание конкретной математики» [6] [7] содержит самое раннее известное использование термина «программное обеспечение». найдено при поиске в электронных архивах JSTOR за два года до цитирования OED . [8] Это привело к тому, что многие приписали Тьюки создание этого термина, особенно в некрологах, опубликованных в том же году, [9] хотя Тьюки никогда не претендовал на признание подобных чеканок. В 1995 году Поль Никетт заявил, что первоначально он придумал этот термин в октябре 1953 года, хотя он не смог найти никаких документов, подтверждающих его утверждение. [10]Самая ранняя известная публикация термина «программное обеспечение» в инженерном контексте была сделана Ричардом Р. Кархартом в августе 1953 года в исследовательском меморандуме Rand Corporation . [11]


Диаграмма, показывающая, как пользователь взаимодействует с прикладным программным обеспечением на типичном настольном компьютере . Уровень прикладного программного обеспечения взаимодействует с операционной системой , которая, в свою очередь, взаимодействует с оборудованием . Стрелки указывают поток информации.
Блендер , бесплатная программа