Spec#
Класс языка мультипарадигменный: структурный, императивный, объектно-ориентированный, событийно-ориентированный, функциональный, контрактный
Появился в 2004
Автор Microsoft Research
Разработчик Microsoft Research
Выпуск 03.10.2011 (7 октября 2011)
Система типов статическая, строгая, типобезопасная, номинативная
Испытал влияние C#, Эйфель
Повлиял на Sing#
Сайт research.microsoft.com/s…

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

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

Пример

править

Данный пример демонстрирует две базовые структуры, используемые при добавлении контрактов в ваш код.

    static void Main(string![] args)
        requires args.Length > 0
    {
        foreach(string arg in args)
        {
            Console.WriteLine(arg);
        }
    }
  • ! используется для создания ненулевого ссылочного типа, то есть вы не сможете присвоить ему нулевое значение. Это отличается от нулевых типов, которые допускают присваивание им значений типа null.
  • requires («требует») означает условие, выполнимое в данном коде. В этом случае длина args не должна быть равной нулю или меньше.

Источники

править
  • Barnett, M., K. R. M. Leino, W. Schulte, «The Spec# Programming System: An Overview.» Proceedings of Construction and Analysis of Safe, Secure and Interoperable Smart Devices (CASSIS), Marseilles. Springer Science+Business Media, 2004.

См. также

править

Дополнительные источники

править

📚 Artikel Terkait di Wikipedia

WinRAR

комментарии (задавая цвет фона, а также цвет и размер шрифта) с помощью Esc-последовательностей ANSI. RarVM — встроенная виртуальная машина. В 2009 году

Openbravo POS

чеков, поддерживающий протокол ESC/POS или подключённый через JavaPOS драйвер. Фискальный принтер, подключаемый через JavaPOS драйвер. Дисплей покупателя

Сотовый телефон

Ericsson T20. 2000 — первый сотовый телефон, имеющий GPS-приёмник — Benefon ESC. 2000 — первый сотовый телефон, с полифонией (Sony J5). 2000 — японская компания

IBM Common User Access

R (Retrieve — получить). В Microsoft Word для открытия файла нажималось: Esc (чтобы открыть меню), T (Transfer — передача), L (Load — загрузить). В WordStar

Google Chrome

«Диспетчер задач». Также можно воспользоваться быстрыми клавишами ⇧ Shift+Esc. В диспетчере задач показываются все процессы, запущенные в Google Chrome

Ultimate++

SQL-запросами, интерфейсы к СУБД SQLite 3, MySQL, PostgreSQL, MS SQL, Oracle; Esc — встраиваемый интерпретатор скриптового языка; Web — функции работы с сетью

Символ доллара

указатель на служебные переменные; в jQuery, широко используемой библиотеке JavaScript, используется как имя главной в библиотеке функции. С 1993 по 1999 год

Otter Browser

Большое количество сочетаний клавиш Остановка загрузки страницы по нажатию Esc Поддержка Windows XP Beta 3 1 ноября 2014 Боковая панель Возможность установить