Системные языки
-
это машинно-ориентированные языки, наборы операторов и
изобразительные средства которых существенно зависят от особенностей ЭВМ
(внутреннего языка, структуры памяти и т.д.).
Машинно-ориентированные языки позволяют использовать все возможности и
особенности машинно-зависимых языков:
высокое качество создаваемых программ (компактность и скорость выполнения);
возможность использования конкретных аппаратных ресурсов;
предсказуемость объектного кода и заказов памяти;
для составления эффективных программ необходимо знать систему команд и особенности функционирования данной ЭВМ;
трудоемкость процесса составления программ (особенно на машинных языках и ЯСК), плохо защищенного от появления ошибок;
низкая скорость программирования;
невозможность непосредственного использования программ, составленных на этих языках, на ЭВМ других типов.
Именно по этим причинам такие языки относят к языкам среднего уровня,
которые в отличие от языков первого поколения (машинных языков, ассемблеров)
более удобны для текстового программирования (кодирования) человеком, так как
представляют собой текстовые языки, но, в отличие от
языков высокого уровня,
остаются машинно-ориентированными, что делает их более эффективными для
использования аппаратных возможностей ЭВМ.
программист должен учитывать аппаратное обеспечение и другие особенности системы, на которой предполагается запуск программы, и использовать эти особенности (например, применяя оптимизированные алгоритмы для определенной архитектуры )
обычно используются низкоуровневые языки программирования или диалекты которые:
могут работать в ресурсно-ограниченной среде
максимально рациональные и имеют минимальные задержки по времени выполнения
имеют малые библиотеки библиотеки периода выполнения (RTL), или вообще их не имеют
позволит прямой доступ к памяти и управляющей логики
позволяют программисту писать части программы на ассемблере
налаживание может быть сложным, если невозможно запустить программу в режиме отладки за ограничений в ресурсах. Выполнение программы в эмулируемом среде может снять эту проблему.
Системное программирование, программирование операционных систем
-
- это вид программирования, который заключается в работе с системным
программным обеспечением. Главным отличием системного программирования по
сравнению с прикладным программированием является то, что прикладное
программное обеспечение предназначено выпускать (создавать и обновлять)
программы для пользователей (например, текстовые процессоры ), тогда как
системное программирование предназначено выпускать программы, обслуживающие
аппаратное обеспечение (например, дефрагментация диска ) что обусловливает
значительную зависимости такого типа ПО от аппаратной части.
Также для системного программирования характерно, что оно существенно
отличается от прикладного программирования, что заставляет программистов
специализироваться в одной из этих областей.
Для системного программирования часто доступна только ограниченное количество инструментов. Налаживание иногда оказывается очень сложным. Библиотеки периода выполнения, если вообще доступны, имеют гораздо меньшие возможности, и делают меньше проверок на ошибки. Через эти ограничения, часто используются мониторинг и регистрация данных; операционные системы должны быть снабжены очень качественными подсистемами регистрации данных.
Знаете ли Вы, что наблюдатели - это операции, которые используют в качестве аргумента объекты соответствующего им типа и возвращают элемент другого типа, они используются для получения информации об объекте. Сюда относятся, например, операции типа size.