Системное программирование это кратко

Обновлено: 05.07.2024

Программирование – процесс и искусство создания компьютерных программ и/или программного обеспечения с помощью языков программирования. Программирование сочетает в себе элементы искусства, фундаментальных наук (прежде всего математики) и инженерии.

В узком смысле слова, программирование рассматривается как кодирование — реализация одного или нескольких взаимосвязанных алгоритмов на некотором языке программирования. Под программированием также может пониматься разработка логической схемы для ПЛИС (Программируемая логическая интегральная схема (англ. programmable logic device, PLD) – электронный компонент, используемый для создания цифровых интегральных схем), а также процесс записи информации в ПЗУ. В более широком смысле программирование — процесс создания программ, то есть разработка программного обеспечения.

Программирование включает в себя:

  • Анализ
  • Проектирование - разработка алгоритма
  • Кодирование и Компиляцию - написание исходного текста программы и преобразование его в исполнимый код с помощью компилятора
  • Тестирование и отладку - выявление и устранение ошибок
  • Сопровождение

Языки программирования

Большая часть работы программиста связана с написанием исходного кода на одном из языков программирования.

Различные языки программирования поддерживают различные стили программирования (т. н. парадигмы программирования). Отчасти искусство программирования состоит в том, чтобы выбрать один из языков, наиболее полно подходящий для решения имеющейся задачи. Разные языки требуют от программиста различного уровня внимания к деталям при реализации алгоритма, результатом чего часто бывает компромисс между простотой и производительностью (или между временем программиста и временем пользователя).

Единственный язык, напрямую выполняемый процессором — это машинный язык (также называемый машинным кодом). Изначально все программисты прорабатывали каждую мелочь в машинном коде, но сейчас эта трудная работа уже не делается. Вместо этого программисты пишут исходный код, и компьютер (используя компилятор, интерпретатор или ассемблер) транслирует его, в один или несколько этапов, уточняя все детали, в машинный код, готовый к исполнению на целевом процессоре. Даже если требуется полный низкоуровневый контроль над системой, программисты пишут на языке ассемблера, мнемонические инструкции которого преобразуются один к одному в соответствующие инструкции машинного языка целевого процессора.

См. также

  • Компьютерная программа
  • Язык программирования
  • Разработка программного обеспечения
  • Экстремальное программирование
  • Олимпиады по программированию
  • Блок-схема

Ссылки

  1. см. Lisp 1.5 в России
  • Программирование в DMOZ
  • Библиотека программного кода (offline)
  • Сообщество разработчиков программ
  • Ассоциация ISDEF
  • Теоретический минимум по информатике: Основы программирования (курсы и учебные материалы)

Литература

Основные понятия

Проекти́рование – процесс создания проекта, прототипа, прообраза предполагаемого или возможного объекта, состояния.

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

Проект — комплект указанной документации и материалов (определённого свойства). Проект какого-либо объекта может быть индивидуальным или типовым. При разработке индивидуальных проектов широко применяются типовые или типовые проектные решения.

Исполнимый код = машинный код.

Машинный код (также употребляются термины собственный код, или платформенно-ориентированный код, или родной код, или нативный код — от англ. native code) – система команд (язык) конкретной вычислительной машины (машинный язык), который интерпретируется непосредственно микропроцессором или микропрограммами данной вычислительной машины.

Транслятор – программа, которая принимает на вход программу на одном языке (он в этом случае называется исходный язык, а программа — исходный код), и преобразует её в программу, написанную на другом языке (соответственно, целевой язык и объектный код).

Наиболее часто встречаются две разновидности трансляторов:

· Компиляторы – выдают результат в виде исполняемого файла (в данном случае считаем, что компоновка входит в компиляцию). Этот файл:

o транслируется один раз – может быть запущен самостоятельно

o не требует для работы наличия на машине создавшего его транслятора

· Интерпретаторы – исполняют программу после разбора (в этом случае в роли объектного кода выступает внутреннее представление программы интерпретатором). Исполняется она построчно. В данном случае программа

o транслируется (интерпретируется) при каждом запуске (если объектный код кэшируется, возможны варианты)

o требует для исполнения наличия на машине интерпретатора и исходного кода

Компилятор – транслятор, который осуществляет перевод всей исходной программы в эквивалентную ей результирующую программу на языке машинных команд (микропроцессора или виртуальной машины).

Интерпретатор (языка программирования) – программа для интерпретации, т.е. непосредственного исполнения программ (производства вычислений, предписываемых этими программами) из исходного кода на определённом языке.

Ассемблер (от англ. assembler – рабочий-сборщик) – компьютерная программа, компилятор исходного текста программы написанной на языке ассемблера, в программу на машинном коде.

Системное программирование

Системное программирование (или программирование систем) – род деятельности, заключающийся в работе над системным программным обеспечением. Основная отличительная черта системного программирования по сравнению с прикладным программированием заключается в том, что результатом последнего является выпуск программного обеспечения, предлагающего определённые услуги пользователям (например, текстовый процессор). в то время как результатом системного программирования является выпуск программного обеспечения, предлагающего сервисы по взаимодействию с аппаратным обеспечением (например, дефрагментация жёсткого диска), что подразумевает сильную зависимость таких программ от аппаратной части. В частности выделим следующее:

· программист должен учитывать специфику аппаратной части и другие свойства системы в которой функционирует программа, использовать эти свойства, например, применяя специально оптимизированный для данной архитектуры алгоритм.

· обычно используется низкоуровневый язык программирования или такой диалект языка программирования, который

o позволяет функционирование в окружении с ограниченным набором системных ресурсов

o работает максимально эффективно и имеет минимальное запаздывание по времени завершения

o имеет маленькую библиотеку времени выполнения (RTL) или не имеет вообще её

o позволяет прямое управление (прямой доступ) к памяти и управляющей логике

o позволяет делать ассемблерные вставки в код

· отладка программы может быть затруднена при невозможности запустить её в отладчике из-за ограничений на ресурсы, поэтому может применяться компьютерное моделирование для решения этой проблемы.

Системное программирование существенно отличается от прикладного, что обычно приводит к специализации программиста в одном из них.

Часто, для системного программирования доступен ограниченный набор средств. Использование автоматической сборки мусора довольно редкое явление и отладка обычно сложна. Библиотека времени выполнения, при её наличии, часто менее способная и совершает меньшее количество проверок. В связи с этими ограничениями обычно применяют при мониторинге и записи данных — операционные системы.

История

Изначально, программисты безвариантно писали на языке ассемблера. Эксперименты с поддержкой оборудования в языках высокого уровня (1960s привели к появлению таких, как BLISS и BCPL. Однако, язык программирования Си, сыгравший значительную роль в создании UNIX, завоевал большую популярность и распространился повсеместно к 1980-м годах.

В настоящее время (2006) некоторое применение нашлось для встраиваемого C++. Реализация основных частей в операционной системе и при использовании сетей нуждается в разработчиках системного ПО. Например, реализация постраничности (через виртуальную память) или драйверы устройств.

Термин Системное программирование непосредственно связан с термином Системный программист. Это программист, работающий (создающий, отлаживающий, диагностирующий и т. п.) над системным программным обеспечением.

Группы красителей для волос: В индустрии красоты колористами все красители для волос принято разделять на четыре группы.

Средневековье: основные этапы и закономерности развития: Эпоху Античности в Европе сменяет Средневековье. С чем связано.

Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена.
Вы можете отредактировать эту статью, добавив ссылки на авторитетные источники.
Эта отметка установлена 14 мая 2011.

Системное программирование (или программирование систем) — подраздел программирования, заключающийся в работе над системным программным обеспечением.

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

Одной из основных отличительных черт системного программирования по сравнению с прикладным заключается в том, что результатом последнего является выпуск программ для взаимодействия с пользователем (например, текстовый процессор). В то время как результатом системного программирования является выпуск программ для взаимодействия с аппаратным обеспечением (например, дефрагментация жёсткого диска), что подразумевает сильную зависимость таких программ от аппаратной части. В частности выделим следующее:

    должен учитывать специфику аппаратной части и другие, часто уникальные, свойства системы в которой функционирует программа, использовать эти свойства, например, применяя специально оптимизированный для данной архитектуры алгоритм;
  • часто используется низкоуровневый язык программирования или такой диалект языка программирования, который
    • позволяет функционирование в окружении с ограниченным набором системных ресурсов,
    • работает максимально эффективно и имеет минимальное запаздывание по времени завершения,
    • имеет маленькую библиотеку времени выполнения (RTL) или не имеет её вообще,
    • позволяет прямое управление (прямой доступ) к памяти и управляющей логике,
    • позволяет делать ассемблерные вставки в код;

    Подводя итог, можно утверждать, что СИСТЕМНЫМ следует называть подраздел программирования как вида инженерной деятельности, в котором программист использует специфические и часто уникальные свойства и возможности ВНУТРЕННИХ УРОВНЕЙ вычислительной системы.

    Системное программирование отличается от прикладного, что обычно приводит к специализации программиста в одном из них.

    Часто, для системного программирования доступен ограниченный набор средств. Использование автоматической сборки мусора довольно редкое явление и отладка обычно сложна. Библиотека времени выполнения, при её наличии, часто менее способная и совершает меньшее количество проверок. В связи с этими ограничениями обычно применяют при мониторинге и записи данных — операционные системы.

    Wikimedia Foundation . 2010 .

    Полезное

    Смотреть что такое "Системное программирование" в других словарях:

    системное программирование — sisteminis programavimas statusas T sritis automatika atitikmenys: angl. system programming vok. Systemprogrammierung, f rus. системное программирование, n pranc. programmation système, f … Automatikos terminų žodynas

    СИСТЕМНОЕ ПРОГРАММИРОВАНИЕ — 1) Инженерная дисциплина, разрабатывающая методы построения системных программ, т. е. программ, входящих в состав больших программных комплексов (программных систем), придающих вычислительным средствам постоянные функции нек рой специальной… … Математическая энциклопедия

    Системное программное обеспечение — Системное программное обеспечение это комплекс программ, которые обеспечивают управление компонентами компьютерной системы, такими как процессор, оперативная память, устройства ввода вывода, сетевое оборудование, выступая как «межслойный… … Википедия

    ПРОГРАММИРОВАНИЕ — 1) процесс составления программы, плана действий; 2) дисциплина, изучающая методы и приемы составления программ. С определенной долей условности П. как дисциплина делится на программирование теоретическое, изучающее математич. абстракции программ … Математическая энциклопедия

    ПРОГРАММИРОВАНИЕ — 1) процесс составления программы, плана действий. 2) Раздел информатики, изучающий методы и приёмы составления программ. С долей условности П. как дисциплина разделяется на: теоретическое, изучающее матем. абстракции программ (как объектов с… … Физическая энциклопедия

    ПРОГРАММИРОВАНИЕ — совокупность и последовательность действий в целях получения конкретного результата; (1) П. в вычислительной технике процесс составления (см.) в соответствии с данным (см.) на ЭВМ, а также создание средств программного обеспечения, с помощью… … Большая политехническая энциклопедия

    Перехват (программирование) — У этого термина существуют и другие значения, см. Перехват. Перехват (англ. hooking) технология, позволяющая изменить стандартное поведение тех или иных компонентов информационной системы. Содержание 1 Назначение технологии перехвата … Википедия

    Событийно-ориентированное программирование — Парадигмы программирования Агентно ориентированная Компонентно ориентированная Конкатенативная Декларативная (контрастирует с Императивной) Ограничениями Функциональная Потоком данных Таблично ориентированная (электронные таблицы) Реактивная … Википедия

    RAD (программирование) — У этого термина существуют и другие значения, см. RAD. Разработка программного обеспечения Процесс разработки ПО Шаги процесса Анализ • Проектиро … Википедия

    • позволяет функционирование в окружении с ограниченным набором системных ресурсов
    • работает максимально эффективно и имеет минимальное библиотеку времени выполнения (RTL) или не имеет её вообще
    • позволяет прямое управление (прямой доступ) к памяти и управляющей логике
    • позволяет делать ассемблерные вставки в код

    Содержание

    История

    Драйвер апдейтеры

    Драйверы — это программные компоненты, которые используются устройствами для взаимодействия с операционной системой. Другими словами, драйверы — это посредники между операционной системой и аппаратными устройствами компьютера, использующиеся для передачи и приема данных между ними. Для удобного поиска и работы существуют специальные программы для обновления драйверов. [1]

    Примечания

    Литература

    Компьютер Это незавершённая статья о компьютерах. Вы можете помочь проекту, исправив и дополнив её.

    de:Systemprogrammierung fr:Programmation système pl:Programowanie systemowe vi:Lập trình hệ thống

    Материалы сообщества доступны в соответствии с условиями лицензии CC-BY-SA, если не указано иное.

    Системное программирование – это программирование, направленное на взаимодействие с аппаратными ресурсами вычислительной системы. Выполняется оно преимущественно на низкоуровневом языке программирования, максимально учитывая архитектуру аппаратной части платформы.

    Целью прикладного программирования является создание программ, выполняющих определённые задачи пользователя – математический расчёт, редактирование текста, изображения или видео, ведение статистики, создание базы данных, составление расписания и т.п. Целью же системного программирования является создание инструментов для оптимального взаимодействия прикладной программы с оборудованием и операционной системой.

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

    На основании вышесказанного можно выделить основные признаки, отличающие системное программирование от прикладного:

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

    Таким образом, системные программы являются необходимой и важной составляющей при создании прикладных программ, они значительно сокращают время разработки за счёт исключения подробного изучения программистом аппаратной части системы и увеличивают производительность программ, обеспечивая оптимальное использование ресурсов.

    Готовые работы на аналогичную тему

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

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

    Классификация системных программ

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

    Системные программы можно условно разделить на следующие категории:

    • операционные системы;
    • драйверы;
    • сервисные программы для обслуживания оборудования;
    • диагностические средства;
    • программные средства, обеспечивающие автоматизацию разработки прикладного программирования.

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

    Драйверы – это программные компоненты, которые используются устройствами вычислительной системы (процессором, памятью, видеокартой, клавиатурой, внешними подключаемыми устройствами) для взаимодействия с операционной системой. Драйверы обычно разрабатываются производителями аппаратных средств для различных операционных систем и продаются как неотъемлемая часть вместе с этими средствами. Они являются посредниками между аппаратными устройствами компьютера и операционной системой, обеспечивая передачу данных между ними.

    Таким образом, можно представить следующую схему взаимодействия: если программисту, разрабатывающему прикладную программу, необходимо передать данные в память компьютера или сохранить файл на жёстком диске он обращается к соответствующей функции из библиотеки операционной системы, которая в свою очередь обращается к драйверу используемого в данной операции устройства.

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

    Реестр операционной системы со временем из-за сбоев в работе, неправильного завершения работы программ или удаления ненужных программ, накапливает в себе “мусор” или ненужные ссылки. Сервисная программа очистки реестра очищает его от ненужных данных, увеличивая тем самым производительность операционной системы.

    Диагностические средства позволяют проверять исправность аппаратных ресурсов, обнаруживать и устранять отказы. Это помогает прикладному программисту убедиться, что его программа не работает из-за отказа оборудования, а не из-за неправильно написанного кода.

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

    Читайте также: