Компьютерные программы — Википедия

Компьютерная программа История компьютерного программирования Чарльз Бэббидж создал аналитическую машину в 1837 году.   Ада Лавлейс написала первую компьютерную программу для […]

Компьютерная программа

  • История компьютерного программирования

    • Чарльз Бэббидж создал аналитическую машину в 1837 году.  
    • Ада Лавлейс написала первую компьютерную программу для аналитической машины.  
    • Алан Тьюринг представил Универсальную машину Тьюринга в 1936 году.  
  • Развитие компьютеров

    • ENIAC был создан в 1943-1945 годах и использовал 17 468 вакуумных ламп.  
    • Преспер Экерт и Джон Мочли предложили концепцию хранимой программы в 1944 году.  
    • Джон фон Нейман разработал архитектуру фон Неймана в 1945 году.  
  • Компьютеры с сохраненными программами

    • Компьютеры с сохраненными программами загружают инструкции в память.  
    • IBM System/360 имела архитектуру набора команд и мультипрограммирование.  
    • PL/1 был разработан для замены Cobol и Fortran.  
  • Очень масштабная интеграция

    • Изобретение СБИС в 1964 году.  
    • Роберт Нойс усовершенствовал производство полевых транзисторов в 1963 году.  
    • Программируемое ПЗУ стало использоваться для управления электрическим потоком.  
  • Микропроцессоры и микрокомпьютеры

    • Intel 4004 и Intel 8008 были первыми микропроцессорами.  
    • Билл Пенц создал первый микрокомпьютер на базе Intel 8008 в 1972 году.  
  • История языков программирования

    • Дисковая операционная система была запрограммирована на языке ассемблера IBM Basic.  
    • Приложение для ведения медицинских записей было запрограммировано на интерпретаторе BASIC.  
    • Компьютер оказался тупиковым из-за высокой стоимости и узкой специализации.  
  • Эволюция микропроцессоров

    • Intel 8080 был разработан в 1974 году.  
    • Intel 8086 был упрощен для производства Intel 8088.  
    • IBM внедрила Intel 8088 в персональные компьютеры в 1981 году.  
    • Серия x86 включает микропроцессоры, совместимые с Intel 8086.  
  • Язык ассемблера x86

    • Семейство обратно совместимых машинных инструкций.  
    • Инструкции памяти, ALU, стека вызовов и SIMD.  
  • Эволюция среды программирования

    • Схемы СБИС позволили перейти от компьютерных терминалов к GUI.  
    • Полноэкранное редактирование исходного кода стало возможным в 1970-х годах.  
  • Парадигмы и языки программирования

    • Функции языка программирования: выражение идей, независимость идей, взаимосвязи между идеями, свободное комбинирование идей.  
    • Парадигмы программирования: процедурные, функциональные, логические.  
    • Языки программирования основаны на формальных языках.  
  • Поколения языков программирования

    • Первое поколение: машинный язык.  
    • Второе поколение: язык ассемблера.  
    • Третье поколение: компиляторы и интерпретаторы.  
    • Четвертое поколение: декларативные языки.  
  • Императивные языки

    • Определяют последовательный алгоритм.  
    • Примеры: Fortran, COBOL, ALGOL, BASIC.  
  • Фортран

    • Разработан для научных расчетов.  
    • Поддерживал массивы, подпрограммы, циклы.  
    • Стандартизирован ANSI в 1966 году.  
  • КОБОЛ

    • Разработан для бизнес-приложений.  
    • Ввел строки и объектно-ориентированное программирование.  
    • Не менялся до 1974 года.  
  • Алгол

    • Оказал влияние на разработку языков программирования.  
    • Использовал стандартную математическую нотацию.  
    • Прямые потомки: Pascal, Modula-2, Ada, C, C++, Java.  
  • BASIC

    • Разработан для обучения студентов.  
    • Интерпретатор установлен в микрокомпьютерах конца 1970-х годов.  
  • Развитие языка Basic

    • Basic стал пионером интерактивного сеанса  
    • Команды операционной системы в среде Basic  
    • Синтаксис Basic был слишком прост для больших программ  
    • Microsoft Visual Basic обеспечивает графический интерфейс пользователя  
  • Язык программирования C

    • C получил название от языка BCPL  
    • Цель: написание операционной системы UNIX  
    • C позволяет управлять памятью  
    • Глобальные и статические переменные хранятся в области глобальных и статических данных  
    • Локальные переменные хранятся в стеке  
    • Куча используется для динамического выделения памяти  
  • Объектно-ориентированные языки

    • Объектно-ориентированные языки поддерживают классы и объекты  
    • C++ разработан для расширения C с объектно-ориентированными средствами  
    • Объектно-ориентированный модуль состоит из заголовочного и исходного файлов  
  • Декларативные языки

    • Декларативные языки опускают оператор присваивания и поток управления  
    • Функциональные языки используют лямбда-исчисление  
    • Функциональные языки подчеркивают значение «что»  
    • Lisp предназначен для обработки списков  
    • Lisp использует древовидную структуру данных для рекурсивных функций  
  • Недостатки Lisp

    • Вложенные функции могут выглядеть запутанно  
    • Поддержка императивных языковых операций  
    • Динамическая привязка типов данных  
  • ML

    • Проверяет типы данных  
    • Статическая привязка типов данных  
    • Адаптирован для обработки списков  
  • Prolog

    • Логический язык программирования  
    • Факты и правила как строительные блоки  
    • Наследование через предикаты  
  • Объектно-ориентированное программирование

    • Группировка характеристик в контейнеры  
    • Абстрактные типы данных  
    • Формальная стратегия создания объектов  
  • Синтаксис и семантика

    • Синтаксис описывает грамматические конструкции  
    • Семантика описывает значения конструкций  
    • Форма Бэкуса-Наура для описания синтаксиса  
  • Разработка программного обеспечения и компьютерное программирование

    • Разработка программного обеспечения включает методы создания программ  
    • Системный аналитик собирает информацию и готовит план  
    • Цели в области эффективности: качество, точность, формат, скорость  
    • Целевые показатели затрат: затраты на разработку  
  • Уникальность и стоимость

    • Многоразовая система может быть дорогой, но предпочтительнее ограниченной системы.  
    • Аппаратные и операционные затраты.  
    • Процесс разработки систем снижает стоимость исправления ошибок.  
  • Модель водопада

    • Модель водопада включает фазы исследования, анализа, проектирования, реализации и обслуживания.  
    • Возможны изменения после развертывания системы.  
  • Роль программиста

    • Программист пишет или модифицирует исходный код для реализации плана.  
    • Для крупных систем требуется команда программистов.  
    • Программирование может быть в малом или большом масштабе.  
  • Модули программ

    • Модульное программирование улучшает программы, разделяя обязанности и снижая старение.  
    • Модуль — это последовательность операторов, ограниченная блоком и имеющая имя.  
    • Модули имеют функцию, контекст и логику.  
  • Уровни связности и связности

    • Уровни связности: случайная, логическая, временная, процедурная, коммуникационная, информационная, функциональная.  
    • Уровни связности: контент, общий, контроль, штамп, данные.  
  • Анализ потока данных

    • Анализ потока данных используется для достижения функциональной связности и связности данных.  
    • Диаграмма потока данных показывает модули и их связи.  
  • Функциональные категории

    • Программы делятся на прикладное и системное ПО.  
    • Системное ПО включает операционную систему, которая управляет аппаратурой и ПО.  
  • Прикладное ПО

    • Прикладное ПО раскрывает потенциал компьютерной системы.  
    • Примеры: ERP, CRM, SCM.  
    • Прикладное ПО может быть разработано внутри компании или приобретено.  
    • Преимущества и недостатки каждого подхода.  
  • Операционная система

    • Операционная система поддерживает базовые функции компьютера.  
    • В 1950-х программист был также оператором.  
  • История операционных систем

    • В 1960-х годах программисты автоматизировали работу операторов, создав операционные системы.  
    • Операционная система может относиться к ядру, которое управляет процессами, памятью и устройствами, или к полному пакету программного обеспечения.  
  • Функции ядра

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

    • Современные операционные системы обычно пишутся на языках высокого уровня, таких как C, Objective-C и Swift.  
    • Операционные системы выполняют утилиты для администрирования и выполнения программного обеспечения.  
    • Утилиты включают программы для проверки состояния оборудования, оптимизации размещения файлов и мониторинга производительности.  
  • Микрокод

    • Микрокод — это низкоуровневый интерпретатор, управляющий потоком данных в компьютерах.  
    • Микрокод позволяет программистам легче реализовывать цифровые логические функции.  
    • Микрокод хранится в контрольном магазине процессора и управляет данными через микропроцессор.  
    • Микрокод выполняет арифметические операции через арифметико-логический блок.  
    • Микрокод управляет памятью, перемещая данные между процессором и контроллером памяти.  
    • Микрокод также управляет периферийными устройствами через шины.  

Полный текст статьи:

Компьютерные программы — Википедия

Оставьте комментарий

Прокрутить вверх