Лекция
компьютерная программа — это последовательность или набор инструкций на языке программирования , которые должен выполнять компьютер . Компьютерные программы — это один из компонентов программного обеспечения , который также включает документацию и другие нематериальные компоненты.
Компьютерная программа - это набор инструкций и команд, написанных на языке программирования, которые предназначены для выполнения определенной задачи или ряда задач на компьютере. Программа определяет последовательность действий, которые компьютер должен выполнить, чтобы обработать данные, взаимодействовать с пользователем или выполнять другие функции.
Основные характеристики компьютерных программ:
Инструкции: Программа содержит инструкции, которые указывают компьютеру, какие операции выполнять. Эти инструкции могут включать в себя арифметические и логические операции, условные операторы, циклы и многие другие команды.
Язык программирования: Программы написаны на определенном языке программирования, который может быть высокоуровневым (например, Python, Java, C++) или низкоуровневым (например, Ассемблер).
Компиляция или интерпретация: Программы могут быть скомпилированы (преобразованы в машинный код заранее) или интерпретированы (выполняться на лету интерпретатором).
Цель: Компьютерные программы могут быть разработаны для разных целей, таких как обработка данных, создание графических приложений, управление оборудованием, создание веб-сайтов, искусственный интеллект, игры и многое другое.
Платформа: Программы могут быть разработаны для определенной операционной системы (например, Windows, macOS, Linux) или могут быть кроссплатформенными, что позволяет запускать их на разных системах.
Интерфейс: Многие программы имеют графический пользовательский интерфейс (GUI) для взаимодействия с пользователями, хотя также существуют текстовые и консольные программы.
Примеры компьютерных программ включают в себя операционные системы, текстовые редакторы, браузеры, антивирусные программы, компьютерные игры, приложения для обработки изображений и многие другие. Программы являются ключевым элементом современных компьютеров и позволяют им выполнять разнообразные задачи.
Компьютерная программа в ее удобочитаемой форме называется исходным кодом . Для выполнения исходного кода требуется другая компьютерная программа, поскольку компьютеры могут выполнять только свои собственные машинные инструкции . Следовательно, исходный код может быть переведен в машинные инструкции с помощью компилятора языка . ( Программы на языке ассемблера переводятся с помощью ассемблера .) Полученный файл называется исполняемым файлом . Альтернативно, исходный код может выполняться внутри интерпретатора языка .
Если исполняемый файл запрашивается на выполнение, то операционная система загружает его в память и запускает процесс . Центральный процессор вскоре переключится на этот процесс, чтобы он мог выбирать, декодировать и затем выполнять каждую машинную инструкцию.
Если исходный код запрашивается на исполнение, то операционная система загружает в память соответствующий интерпретатор и запускает процесс. Затем интерпретатор загружает исходный код в память для перевода и выполнения каждого оператора . Запуск исходного кода происходит медленнее, чем запуск исполняемого файла. При этом на компьютере должен быть установлен переводчик.
"Привет, мир!" программа Брайана Кернигана (1978)
Программа «Привет, мир!» Программа используется для иллюстрации основного синтаксиса языка . Синтаксис языка BASIC (1964 г.) был намеренно ограничен, чтобы облегчить изучение языка. Например, переменные не объявляются перед использованием. Кроме того, переменные автоматически инициализируются нулями.
Как только механика базового компьютерного программирования будет изучена, станут доступны более сложные и мощные языки для создания больших компьютерных систем.
пример компьютерной программы написанной в среде IDE
Описание программы может быть важным этапом разработки, документации или коммуникации о программном продукте. Существует несколько способов описания программы, которые могут быть использованы в различных контекстах. Вот некоторые из них:
Техническое описание: Этот вид описания фокусируется на технических аспектах программы. В нем могут быть представлены следующие элементы:
Описание пользовательского интерфейса: Если ваша программа имеет графический пользовательский интерфейс (GUI), то описание интерфейса может включать в себя:
Описание функциональности: Это описание, которое акцентирует внимание на том, что программа делает и какие задачи она решает. Это может включать в себя:
Описание потоков данных и взаимодействия: В случае сложных программ, особенно в многозадачных и многопоточных приложениях, описание потоков данных и взаимодействия может быть важным. Это включает в себя:
Описание тестирования и отладки: Это описание, которое содержит информацию о тестовых случаях, процессе тестирования и методах отладки. Это может быть полезно для тестировщиков и разработчиков.
Документация для пользователя: Если программа предназначена для широкой аудитории, описание программы для конечных пользователей включает в себя:
Комментарии в коде: Комментарии в исходном коде программы могут также считаться формой описания. Они объясняют, как работают отдельные части кода, что делает определенная функция и какие данные обрабатываются.
Выбор подходящего способа описания программы зависит от целей, аудитории и контекста, в котором это описание будет использоваться. Комбинация разных видов описаний может быть наиболее эффективной для полного и понятного представления о программе.
Улучшения в разработке программного обеспечения являются результатом усовершенствований компьютерного оборудования . На каждом этапе истории аппаратного обеспечения задачи компьютерного программирования кардинально менялись.
Описание ловеласа из Note G
В 1837 году ткацкий станок Жаккара вдохновил Чарльза Бэббиджа на попытку создать аналитическую машину . Названия компонентов счетного устройства были заимствованы из текстильной промышленности. В текстильной промышленности пряжу привозили из магазина на помол. Устройство имело «хранилище», состоящее из памяти для хранения 1000 чисел по 50 десятичных цифр каждое. Номера из «магазина» были переданы на «мельницу» для обработки. Он был запрограммирован с использованием двух наборов перфорированных карт. Один набор управлял операцией, а другой вводил переменные. Однако после более чем 17 000 фунтов денег британского правительства тысячи зубчатых колес и механизмов так и не заработали полностью вместе.
Ада Лавлейс работала на Чарльза Бэббиджа над описанием аналитической машины (1843 г.). В описании содержится примечание G, в котором полностью подробно описан метод расчета чисел Бернулли с использованием аналитической машины. Эта заметка признана некоторыми историками первой в мире компьютерной программой. Другие историки считают, что Бэббидж сам написал первую компьютерную программу для аналитической машины. В нем перечислена последовательность операций по вычислению решения системы двух линейных уравнений.
В 1936 году Алан Тьюринг представил универсальную машину Тьюринга — теоретическое устройство, способное моделировать любые вычисления. Это конечный автомат с бесконечно длинной лентой чтения/записи. Машина может перемещать ленту вперед и назад, изменяя ее содержимое по мере выполнения алгоритма . Машина запускается в исходном состоянии, выполняет последовательность шагов и останавливается, когда достигает состояния остановки. Все современные компьютеры полны по Тьюрингу .
Гленн А. Бек меняет трубку в ENIAC
Электронный числовой интегратор и компьютер (ENIAC) был построен в период с июля 1943 года по осень 1945 года. Это был полный по Тьюрингу компьютер общего назначения, в котором для создания схем использовалось 17 468 электронных ламп . По своей сути это была серия Паскалин , связанных вместе. Его 40 единиц весили 30 тонн, занимали 1800 квадратных футов (167 м 2 ) и потребляли 650 долларов в час ( в валюте 1940-х годов ) электроэнергии в режиме простоя. У него было 20 аккумуляторов с основанием 10 . Программирование ENIAC заняло до двух месяцев. Три функциональные таблицы находились на колесиках, и их нужно было перекатывать до фиксированных функциональных панелей. Функциональные таблицы были подключены к функциональным панелям путем подключения к разъемным панелям тяжелых черных кабелей . В каждой функциональной таблице было 728 вращающихся ручек. Программирование ENIAC также включало настройку некоторых из 3000 переключателей. Отладка программы заняла неделю. С 1947 по 1955 год он работал на Абердинском полигоне , рассчитывая параметры водородной бомбы, прогнозируя погодные условия и создавая таблицы стрельбы для наведения артиллерийских орудий.
Вместо того, чтобы подключать шнуры и поворачивать переключатели, компьютер с хранимой программой загружает свои инструкции в память точно так же, как он загружает в память свои данные. В результате компьютер можно было быстро программировать и выполнять вычисления с очень высокой скоростью. Преспер Эккерт и Джон Мочли построили ENIAC. Два инженера представили концепцию хранимой программы в трехстраничной записке, датированной февралем 1944 года. Позже, в сентябре 1944 года, доктор Джон фон Нейман начал работать над проектом ENIAC. 30 июня 1945 года фон Нейман опубликовал первый проект отчета о EDVAC., который приравнивал структуры компьютера к структурам человеческого мозга. [22] Проект стал известен как архитектура фон Неймана . Архитектура была одновременно использована в конструкциях компьютеров EDVAC и EDSAC в 1949 году.
IBM System/360 (1964) представляла собой семейство компьютеров, каждый из которых имел одинаковую архитектуру набора команд . Модель 20 была самой маленькой и дешевой. Клиенты могли обновить и сохранить то же прикладное программное обеспечение . Модель 195 была самой премиальной. Каждая модель System/360 отличалась мультипрограммированием — наличием в памяти одновременно нескольких процессов . Когда один процесс ожидал ввода/вывода , другой мог выполнять вычисления.
IBM планировала программировать каждую модель с использованием PL/1 . Был сформирован комитет, в который вошли программисты COBOL , Fortran и ALGOL . Целью было разработать всеобъемлющий, простой в использовании, расширяемый язык, который заменит Кобол и Фортран. В результате получился большой и сложный язык, компиляция которого заняла много времени .
Переключатели ручного ввода на Data General Nova 3, произведенном в середине 1970-х годов.
Компьютеры, выпускавшиеся до 1970-х годов, имели переключатели на передней панели для ручного программирования. Компьютерная программа была написана на бумаге для справки. Инструкция представляла собой конфигурацию настроек включения/выключения. После настройки конфигурации была нажата кнопка выполнения. Затем этот процесс повторился. Компьютерные программы также автоматически вводились с помощью бумажной ленты , перфокарт или магнитной ленты . После загрузки носителя с помощью переключателей устанавливался начальный адрес и нажималась кнопка выполнения.
Кристалл интегральной схемы СБИС
Важной вехой в разработке программного обеспечения стало изобретение схемы очень большой интеграции (СБИС) (1964 г.). После Второй мировой войны ламповая технология была заменена транзисторами с точечным контактом (1947 г.) и транзисторами с биполярным переходом (конец 1950-х гг.), Установленными на печатной плате . В 1960-х годах аэрокосмическая промышленность заменила печатную плату интегральной микросхемой .
Роберт Нойс , соучредитель компаний Fairchild Semiconductor (1957 г.) и Intel (1968 г.), добился технологического усовершенствования для усовершенствования производства полевых транзисторов ( 1963 г.). Цель состоит в том, чтобы изменить удельное электрическое сопротивление и проводимость полупроводникового перехода . Во-первых, природные силикатные минералы преобразуются в поликремниевые стержни с использованием процесса Сименс . [31] Процесс Чохральского затем превращает стержни в монокристаллический кремниевый кристалл буля.. Затем кристалл нарезают тонкими ломтиками, чтобы сформировать подложку пластины . Затем планарный процесс фотолитографии объединяет униполярные транзисторы, конденсаторы , диоды и резисторы на пластине для построения матрицы транзисторов металл-оксид-полупроводник (МОП). МОП-транзистор является основным компонентом интегральных микросхем .
Первоначально функции микросхем интегральных схем устанавливались во время производства. В 1960-е годы управление электрическим потоком перешло к программированию матрицы постоянного запоминающего устройства ( ПЗУ). Матрица напоминала двумерный массив предохранителей. Процесс внедрения инструкций в матрицу заключался в удалении ненужных связей. Соединений было так много, что программисты прошивок написали компьютерную программу на другом чипе, чтобы контролировать горение. Технология стала известна как Программируемое ПЗУ . В 1971 году Intel установила на чип компьютерную программу и назвала ее Микропроцессор Intel 4004 .
Процессор IBM System/360 (1964 г.) не был микропроцессором.
Термины «микропроцессор» и « центральный процессор » (ЦП) теперь используются как взаимозаменяемые. Однако процессоры предшествовали микропроцессорам. Например, процессор IBM System/360 (1964 г.) был изготовлен из печатных плат, содержащих дискретные компоненты на керамических подложках .
Изображение художника микрокомпьютера Intel 8008 государственного университета Сакраменто (1972 г.)
Intel 4004 (1971 г.) представлял собой 4- битный микропроцессор, предназначенный для работы калькулятора Busicom . Через пять месяцев после выпуска Intel выпустила Intel 8008 , 8-битный микропроцессор. Билл Пентц возглавил команду в штате Сакраменто по созданию первого микрокомпьютера на базе Intel 8008: Sac State 8008 (1972). [37] Его целью было хранение медицинских карт пациентов. Компьютер поддерживал дисковую операционную систему для работы с 3- мегабайтным жестким диском Memorex . [29]У него был цветной дисплей и клавиатура, объединенные в одну консоль. Дисковая операционная система была запрограммирована с использованием базового языка ассемблера IBM (BAL) . Приложение медицинских записей было запрограммировано с использованием интерпретатора BASIC . Однако компьютер оказался эволюционным тупиком, поскольку был чрезвычайно дорогим. Кроме того, он был построен в лаборатории государственного университета для определенной цели. Тем не менее, проект способствовал развитию набора команд Intel 8080 (1974) .
В первом персональном компьютере IBM (1981 г.) использовался микропроцессор Intel 8088.
В 1978 году современная среда разработки программного обеспечения началась, когда Intel обновила Intel 8080 до Intel 8086 . Intel упростила Intel 8086 для производства более дешевого Intel 8088 . [38] IBM приняла Intel 8088, когда вышла на рынок персональных компьютеров (1981 г.). По мере роста потребительского спроса на персональные компьютеры росла и разработка микропроцессоров Intel. Последовательность развития известна как серия x86 . Язык ассемблера x86 — это семейство обратно совместимых машинных инструкций.. Машинные инструкции, созданные в более ранних микропроцессорах, сохранялись при обновлении микропроцессоров. Это позволило потребителям приобретать новые компьютеры без необходимости приобретать новое прикладное программное обеспечение . Основные категории инструкций:
DEC VT100 (1978 г.) был широко используемым компьютерным терминалом .
Схемы СБИС позволили среде программирования перейти от компьютерного терминала (до 1990-х годов) к компьютеру с графическим интерфейсом пользователя (GUI). Компьютерные терминалы ограничивали программистов одной оболочкой , работающей в среде командной строки . В 1970-х годах полноэкранное редактирование исходного кода стало возможным через текстовый пользовательский интерфейс . Независимо от доступной технологии, цель состоит в том, чтобы программировать на языке программирования .
Функции языка программирования существуют для того, чтобы обеспечить строительные блоки, которые можно объединить для выражения идеалов программирования. В идеале язык программирования должен:
Стиль программирования языка программирования, обеспечивающий эти строительные блоки, можно разделить на парадигмы программирования . Например, разные парадигмы могут различаться:
Каждый из этих стилей программирования внес свой вклад в синтез различных языков программирования .
Язык программирования — это набор ключевых слов , символов , идентификаторов и правил, с помощью которых программисты могут передавать инструкции компьютеру. Они следуют набору правил, называемых синтаксисом .
Языки программирования берут свою основу из формальных языков . Целью определения решения на формальном языке является создание алгоритма для решения проблемы подчеркивания. Алгоритм — это последовательность простых инструкций, которые решают проблему .
Эволюция языка программирования началась, когда EDSAC (1949) использовал первую хранимую компьютерную программу в своей архитектуре фон Неймана . Программирование EDSAC осуществлялось на языке программирования первого поколения .
Ключевой характеристикой программы на языке ассемблера является то, что она формирует взаимно однозначное сопоставление с соответствующей целью машинного языка.
Компьютерная программа, написанная на императивном языке.
Императивные языки определяют последовательный алгоритм с использованием объявлений , выражений и операторов :
var x: integer;
2 + 2
x := 2 + 2; if x = 4 then do_something();
ФОРТРАН (1958 г.) был представлен как «Система ПЕРЕВОДА математических формул IBM». Он был разработан для научных расчетов без средств для работы со струнами . Наряду с объявлениями , выражениями и операторами он поддерживал:
Это удалось, потому что:
Однако поставщики, не принадлежащие IBM, также написали компиляторы Fortran, но с синтаксисом, который, скорее всего, не сработает с компилятором IBM. Американский национальный институт стандартов (ANSI) разработал первый стандарт Фортрана в 1966 году. В 1978 году Фортран 77 стал стандартом до 1991 года. Фортран 90 поддерживает:
COBOL (1959) означает «Общий бизнес-ориентированный язык». Фортран манипулировал символами. Вскоре стало понятно, что символы не обязательно должны быть числами, поэтому были введены строки . [55] Министерство обороны США повлияло на разработку COBOL, при этом Грейс Хоппер внесла основной вклад. Заявления были английскими и многословными. Целью было разработать язык, на котором менеджеры могли бы читать программы. Однако отсутствие структурированных заявлений помешало достижению этой цели.
Развитие COBOL строго контролировалось, поэтому не возникло диалектов, требующих стандартов ANSI. Как следствие, он не менялся в течение 15 лет до 1974 года. Версия 1990-х годов действительно внесла существенные изменения, такие как объектно-ориентированное программирование .
АЛГОЛ (1960) означает «АЛГОРИТМИЧЕСКИЙ ЯЗЫК». Это оказало глубокое влияние на дизайн языков программирования. Разработанный комитетом европейских и американских экспертов по языкам программирования, он использовал стандартные математические обозначения и имел удобочитаемый, структурированный дизайн. Алгол был первым, кто определил свой синтаксис , используя форму Бэкуса-Наура . Это привело к появлению компиляторов , управляемых синтаксисом . Он добавил такие функции, как:
Прямые потомки Алгола включают Паскаль , Модулу-2 , Аду , Дельфи и Оберон на одной ветке. В другой ветке потомки включают C , C++ и Java .
BASIC (1964) означает «Универсальный код символических инструкций для начинающих». Он был разработан в Дартмутском колледже для обучения всех его студентов. Если бы ученик не перешел на более мощный язык, он все равно помнил бы Бейсик. Интерпретатор Basic устанавливался в микрокомпьютеры , выпущенные в конце 1970-х годов. По мере роста индустрии микрокомпьютеров рос и язык.
Компания Basic стала пионером интерактивных сеансов . Он предлагал команды операционной системы в своей среде:
Однако синтаксис Basic был слишком простым для больших программ. В последних диалектах добавлена структура и объектно-ориентированные расширения. Microsoft Visual Basic до сих пор широко используется и обеспечивает графический интерфейс пользователя .
Язык программирования C (1973 г.) получил свое название потому, что язык BCPL был заменен на B , а компания AT&T Bell Labs назвала следующую версию «C». Его целью было написать операционную систему UNIX . [50] C — относительно небольшой язык, что позволяет легко писать компиляторы. Его рост отражал рост аппаратного обеспечения в 1980-х годах. Его рост также обусловлен тем, что он имеет возможности языка ассемблера , но использует синтаксис высокого уровня . В него добавлены расширенные функции, такие как:
Карта памяти компьютера
C позволяет программисту контролировать, в какой области памяти следует хранить данные. Для хранения глобальных переменных и статических переменных требуется наименьшее количество тактов . Стек автоматически используется для стандартных объявлений переменных . Куча памяти возвращается в переменную-указатель из функции. malloc()
main()
. Глобальные переменные видны main()
всем остальным функциям исходного кода.С другой стороны, объявления переменных внутри main()
, других функций или внутри {
}
разделителей блоков являются локальными переменными . Локальные переменные также включают переменные формальных параметров . Переменные параметров
продолжение следует...
Часть 1 Компьютерная программа, ее особенности и способы описания
Часть 2 Программная инженерия и компьютерное программирование - Компьютерная программа, ее особенности
Часть 3 Вау!! 😲 Ты еще не читал? Это зря! - Компьютерная программа, ее особенности и способы описания
Ответы на вопросы для самопроверки пишите в комментариях, мы проверим, или же задавайте свой вопрос по данной теме.
Комментарии
Оставить комментарий
Разработка программного обеспечения и информационных систем
Термины: Разработка программного обеспечения и информационных систем