<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Spec-Sharp</id>
	<title>Spec-Sharp - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Spec-Sharp"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Spec-Sharp&amp;action=history"/>
	<updated>2026-05-22T04:04:36Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Spec-Sharp&amp;diff=729635&amp;oldid=prev</id>
		<title>imported&gt;SchlurcherBot: Bot: http → https</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Spec-Sharp&amp;diff=729635&amp;oldid=prev"/>
		<updated>2025-09-27T09:20:22Z</updated>

		<summary type="html">&lt;p&gt;Bot: http → https&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Korrekter Titel|Spec#}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Programmiersprache&lt;br /&gt;
|Name=Spec#&lt;br /&gt;
|Logo =&lt;br /&gt;
|Beschreibung= Objektorientierte Programmiersprache&lt;br /&gt;
|Paradigma = [[Objektorientierte Programmiersprache]]&lt;br /&gt;
|Erscheinungsjahr = 2004&lt;br /&gt;
|Entwickler = [[Microsoft Research]]&lt;br /&gt;
|AktuelleVersion = SpecSharp 2011-10-03&lt;br /&gt;
|AktuelleVersionFreigabeDatum = 7. Oktober 2011&lt;br /&gt;
|Typisierung = [[Starke Typisierung|stark]]&lt;br /&gt;
|Implementierung =&lt;br /&gt;
|Dialekte =&lt;br /&gt;
|Beeinflusst_von =[[C-Sharp|C#]]&lt;br /&gt;
|Beeinflusste = &lt;br /&gt;
|Betriebssystem = alle mit [[Common Language Runtime|CLR]]&lt;br /&gt;
|Lizenz = &lt;br /&gt;
|Website = [https://research.microsoft.com/SpecSharp/ research.microsoft.com/SpecSharp]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Spec#&amp;#039;&amp;#039;&amp;#039; ist eine von [[Microsoft Research]] entwickelte [[Objektorientierte Programmierung|objektorientierte Programmiersprache]], die eine Erweiterung zum etablierten [[C-Sharp|C#]] ist&amp;lt;ref&amp;gt;{{Internetquelle |url=https://www.microsoft.com/en-us/research/project/spec/ |titel=Spec# |werk=Microsoft Research |zugriff=2018-12-16 |sprache=en-US}}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
Sie ist kostenlos und u. a. für die [[Integrierte Entwicklungsumgebung|Entwicklungsumgebungen]] [[Microsoft Visual Studio]] 2003, 2005 und 2008 verfügbar und bildet zusätzlich den Grundstock für [[Sing-Sharp|Sing#]]. Diese Sprache wurde für das Projekt [[Singularity (Microsoft)|Singularity]] entwickelt. Die Konzepte sind zum Teil als [[Code Contracts]] in Visual Studio 2010 eingeflossen.&lt;br /&gt;
&lt;br /&gt;
== Konzept ==&lt;br /&gt;
Spec# ist eine Erweiterung von C# um Vorbedingungen, Nachbedingungen, Non-Null-Types und Objektinvarianzen. Die Methodenbedingungen werden durch Kontrakte abgebildet und erweitern damit die Metabeschreibung eines Objekts. Zusätzlich werden [[Ausnahmebehandlung#Checked Exceptions|Checked Exceptions]] implementiert. Die Erweiterungen sind durch den Spec#-Compiler möglich. Für die Absicherung wurde ein [[Maschinengestütztes Beweisen|Theorembeweiser]] mit dem Codenamen Boogie implementiert.&lt;br /&gt;
&lt;br /&gt;
== Programmierbeispiel ==&lt;br /&gt;
Die folgenden Zeilen geben einen kleinen Einblick in den Aufbau und die Verwendung von Spec#. Hierbei handelt es sich um den Start-[[Quelltext]], der von Visual Studio 2005 über den Projekt-[[Assistent (Datenverarbeitung)|Wizard]] für eine [[Konsolenanwendung]] generiert wird:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
&lt;br /&gt;
public class Program&lt;br /&gt;
{&lt;br /&gt;
    static void Main(string![]! args)&lt;br /&gt;
&lt;br /&gt;
    // The following precondition is redundant with the type&lt;br /&gt;
    // signature for the parameter, but shown here as an example.&lt;br /&gt;
    requires forall{int i in (0:args.Length); args[i] != null};&lt;br /&gt;
    {&lt;br /&gt;
        Console.WriteLine(&amp;quot;Spec# says hello!&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Eiffel (Programmiersprache)]]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [https://research.microsoft.com/SpecSharp/ Offizielle Webseite] (englisch)&lt;br /&gt;
* [http://channel9.msdn.com/shows/Going+Deep/Expert-to-Expert-Contract-Oriented-Programming-and-Spec/ Expert to Expert: Contract Oriented Programming and Spec# (Erik Meijer im Gespräch mit den Spec#-Designern auf Channel9)] (englisch)&lt;br /&gt;
* [https://visualstudiomagazine.com/articles/2010/06/23/code-contracts.aspx Code Contracts in .NET 4] (englisch)&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Objektorientierte Programmiersprache]]&lt;br /&gt;
[[Kategorie:.NET]]&lt;br /&gt;
[[Kategorie:Microsoft]]&lt;br /&gt;
[[Kategorie:Qualitätsmanagement (Softwaretechnik)]]&lt;/div&gt;</summary>
		<author><name>imported&gt;SchlurcherBot</name></author>
	</entry>
</feed>