Из Википедии, свободной энциклопедии
  (Перенаправлено с Sing Sharp )
Перейти к навигации Перейти к поиску

Spec # - это язык программирования с функциями языка спецификаций, который расширяет возможности языка программирования C # с помощью контрактов , подобных Eiffel , включая объектные инварианты , предварительные и постусловия. Как и ESC / Java , он включает в себя инструмент статической проверки, основанный на программе доказательства теорем, которая может статически проверять многие из этих инвариантов. Он также включает множество других второстепенных расширений языка, таких как ненулевые ссылочные типы.

Код контракты API в .NET Framework 4.0 эволюционировала с Spec #.

Microsoft Research разработала как Spec #, так и C # ; в свою очередь, Spec # служит основой языка программирования Sing # , который также был разработан Microsoft Research.

Особенности [ править ]

См. Также: Spec # в синтаксисе C Sharp .

Spec # расширяет базовый язык программирования C # такими функциями, как:

  • Типы, не допускающие значения NULL
  • Структуры для контракта кода, такие как предусловия и постусловия .
  • Проверены исключения, аналогичные таковым в Java .
  • Удобный синтаксис

Пример [ править ]

В этом примере показаны две основные структуры, которые используются при добавлении контрактов в ваш код ( попробуйте Spec # в своем браузере ).

 static  int  Main ( string ! []  args )  требует  аргументов . Длина  >  0 ;  обеспечивает  return  ==  0 ;  {  foreach ( строка  arg  в  args )  {  Console . WriteLine ( аргумент );  }  return  0 ;  }
  • ! используется, чтобы сделать ссылочный тип не допускающим значения NULL, например, вы не можете установить значение NULL. В этом отличие от типов, допускающих значение NULL, которые позволяют задавать типы значений как NULL .
  • requires указывает на предварительное условие, которое должно соблюдаться в коде. В этом случае длина аргументов не может быть равна нулю или меньше.
  • гарантирует указывает постусловие, которое должно соблюдаться в коде.

Спой # [ править ]

Sing # - это расширенный набор Spec #. Microsoft Research разработала Spec #, а затем расширила его до Sing #, чтобы разработать операционную систему Singularity . Sing # расширяет возможности Spec # за счет поддержки каналов и конструкций низкоуровневого языка программирования , которые необходимы для реализации системного программного обеспечения . Sing # безопасен по типу. Семантика примитивов передачи сообщений в Sing # определяется формальными и письменными контрактами. [ необходима цитата ]

Источники [ править ]

  • Барнетт, М., KRM Leino, W. Schulte, "Система программирования Spec #: Обзор". Proceedings of Construction and Analysis of Safe, Secure and Interoperable Smart Devices (CASSIS) , Marseilles. Springer-Verlag , 2004.

См. Также [ править ]

  • Эйфелева
  • Сингулярность
  • C #

Внешние ссылки [ править ]

  • Веб-сайт Spec # от Microsoft Research
  • Номер спецификации в Codeplex
  • Онлайн-спецификация # на RiSE4fun