Spec Sharp

Spec Sharp
Правильный заголовок этой статьи — Spec#. Он показан некорректно из-за технических ограничений.
Spec#
Класс языка:

мультипарадигменный: структурный, императивный, объектно-ориентированный, событийно-ориентированный, функциональный, контрактный

Появился в:

2004

Автор(ы):

Microsoft Research

Релиз:

1.0.21125

Типизация данных:

статическая, строгая, типобезопасная, номинативная

Испытал влияние:

C#, Эйфель

Повлиял на:

Sing#

Сайт:

Spec# website

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);
        }
    }
  • ! используется для создания ненулевого ссылочного типа, то есть вы не сможете присвоить ему нулевое значение. Это отличается от нулевых типов, которые допускают присваивание им значений типа нуль.
  • 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.

См. также

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



Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Полезное


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

  • Spec Sharp — Spec# is a programming language with specification language features that extends the capabilities of the C# programming language with Eiffel like contracts, including object invariants, preconditions and post conditions. Like ESC/Java, it… …   Wikipedia

  • Spec-Sharp — Der korrekte Titel dieses Artikels lautet „Spec#“. Diese Schreibweise ist aufgrund technischer Einschränkungen nicht möglich …   Deutsch Wikipedia

  • Spec — steht für: Standard Performance Evaluation Corporation Spec steht für: Spezifikation (von engl. specification) spec. steht für: eine nicht näher bezeichnete Spezies in der biologischen Systematik als Zusatz hinter dem wissenschaftlichen Namen der …   Deutsch Wikipedia

  • C Sharp syntax — The correct title of this article is C# syntax. The substitution or omission of the # sign is because of technical restrictions. Main article: C Sharp (programming language) This article describes the syntax of the C# programming language. The… …   Wikipedia

  • C Sharp — Dieser Artikel behandelt die Programmiersprache C#. In der Musik bezeichnet C# (bzw. C♯) den Ton Cis. C# Paradigmen: strukturiert, imperativ, objektorientiert, funktional Erscheinungsjahr …   Deutsch Wikipedia

  • Sing Sharp — Правильный заголовок этой статьи  Sing#. Он показан некорректно из за технических ограничений. Sing# Класс языка: мультипарадигменный: структурный, императивный, объектно ориентированный, событийно ориентированный, функциональный,… …   Википедия

  • C Sharp (programming language) — The correct title of this article is C# (programming language). The substitution or omission of the # sign is because of technical restrictions. C# Paradigm(s) multi paradigm: structured, imperative …   Wikipedia

  • C Sharp — У этого термина существуют и другие значения, см. C. Правильный заголовок этой статьи  C#. Он показан некорректно из за технических ограничений. C# Семантика: императивный Класс языка: мультипарадигменный: объектно ориентированный,… …   Википедия

  • Sing Sharp — Sing# is a concurrent programming language that is a superset of the Spec# programming language; in turn, Spec# is an extension of the C# programming language. Microsoft Research developed Spec#, and later extended it into Sing# in order to… …   Wikipedia

  • Comparison of C Sharp and Java — The correct title of this article is Comparison of C# and Java. The substitution or omission of the # sign is because of technical restrictions. Programming language comparisons General comparison Basic syntax Basic instructions …   Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»