Кодирование для высокой надежности/доступности/безопасности - какие стандарты я читаю?

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

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

В зависимости от того, что вы на самом деле хотите, Template Haskell может быть решением, которое вы можете использовать вместо этого.

12
задан Qantas 94 Heavy 5 September 2013 в 13:51
поделиться

6 ответов

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

6
ответ дан 2 December 2019 в 19:33
поделиться

если Вы спрашиваете конкретно о кодировании, MISRA представляет некоторые инструкции для предотвращения частых ошибок в C.

однако, существует намного больше к хорошему программному обеспечению, чем кодирование. "Библия" авиационной промышленности для коротковолновой разработки, ДЕЛАЮТ - 178B. Это говорит Вам, какие вопросы должны быть рассмотрены в различных стадиях проектирования и как ответы должны быть зарегистрированы. Это - ОГРОМНАЯ сумма документов, но при попытке сохранить плоскости в воздухе, Вы хотите, чтобы самое слабое место было человеком (пилот), не программное обеспечение.

4
ответ дан 2 December 2019 в 19:33
поделиться

Можно найти это поучительным для рассмотрения некоторых требований Класса Поставщика услуг Linux. В то время как они (поскольку имя предлагает!) указывают требования Linux, они делают так для использования в высоконадежном сегменте телекоммуникационного оборудования.

2
ответ дан 2 December 2019 в 19:33
поделиться

NIST обеспечивает, целое убило связанных документов, можно погрузиться в и просмотреть их работу - но существует многое из него, и это является все довольно подробным, таким образом, у меня нет определенного для указания на Вас на.
Если Вы хотите быть более конкретными со своими потребностями, я смог сужать его немного...

Кроме того, Carnegie Mellon является в значительной степени категорическим когда дело доходит до процессов разработки для надежности, достаточно легкой найти их стандарты, но также и довольно подробный.

Кроме того, определенные отрасли промышленности часто имеют свои собственные стандарты, завися также от страны. Например, промышленность кредитной карты - PCI-DSS; Банковское дело в ЕС - Базель II; Медицинский - HIPAA (хотя это - довольно высокий уровень); что-либо американское правительство связанные, различные документы NIST; и т.д.

1
ответ дан 2 December 2019 в 19:33
поделиться

Для программирования систем высокой надежности на Ada существует: ISO / IEC TR 15942: «Информационные технологии - Языки программирования - Руководство по использованию Ada язык программирования в системах с высокой степенью интеграции »:

Введение

Как общество, мы все больше полагаясь на системы высокой целостности: для систем безопасности (таких как электронный самолет), для обеспечения безопасности системы (для защиты цифровых информация) или для финансовых систем (например, банкоматы). Как сложность этих систем растет, поэтому выполнять требования по усовершенствованной технике для производства программного обеспечения компоненты системы. Эти высокие системы целостности должны быть доказаны полностью предсказуема в работе и иметь все свойства, необходимые для их. Этого можно добиться только анализируя программное обеспечение, в дополнение к использование обычных динамических тестирование. В настоящее время нет основной язык высокого уровня, где все программы на этом языке гарантированно будет предсказуемым и поддающийся анализу. Поэтому на любой выбор языка реализации это необходимо контролировать способы, которыми язык используется приложением. Язык Ada [ARM] разработан со специфическими механизмами для контроль использования определенных аспектов языка. Более того,

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

  2. Строгая типизация в языке может использоваться для уменьшения объем (и стоимость) анализа для проверки ключевые свойства.

  3. Язык Ада успешно используется на многих высоких приложения целостности. это демонстрирует, что проверенная Ада компиляторы имеют необходимое качество для таких приложений.

  4. Может быть предоставлено руководство для облегчения использования языка и поощрять разработку инструментов для дальнейшей проверки.

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

3
ответ дан 2 December 2019 в 19:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: