Turing Simulator (C) 2014 Sascha Schwegelbauer ([email protected])
Documentation available in english language on request, just drop me an email.
/* ----------------------------------------------------------------------------
- Licensed under The MIT License (see LICENSE.md)
- Sascha Schwegelbauer[email protected] wrote this file.
- Excluded are all persons related to my IS/BI studies at WINGS Wismar.
- ---------------------------------------------------------------------------- */
TuringSimulator ist eine in .NET (bzw. C++/CLI und C#) implementierte Umgebung um "Turing-Programme" (vgl. http://de.wikipedia.org/wiki/Turingmaschine) zu testen / auszuführen.
Einfach benutzen: direkt TuringSimulator.CPP.GUI.exe starten und loslegen Selber programmieren: a) eine Instanz von TuringSimulator.CPP.Core.TuringLogic oder TuringSimulator.CS.Core.TuringLogic erzeugen und benutzen. b) am besten den Code der Unit-Tests zur Verdeutlichung der Nutzung anschauen.
Das Projekt ist grundlegend in C++/CLI (Namespace TuringSimulator.CPP.) entwickelt. Es existieren für jede ablaufrelevante Klasse Interfaces, welche sowohl von C++/CLI als auch von C# (TuringSimulator.CS.) implementiert werden. Es existieren in C# geschriebene, automatisierte Tests für die grundlegenden Funktionen. Die Tests decken sowohl die C++/CLI als auch die C# - Implementierung ab.
3.1 Dateiformat für TuringCommandList bzw. TuringCommand ====================================================
- Textdatei
- eine Zeile je Turing-Kommando
- Aufbau gemäß Projektspezifikation
3.2 Inhalt der Solution ===================
-
Beinhaltet die Definition die von C++/CLI bzw. C# und den Tests verwendeten Interfaces und Enums.
-
Auf Basis von WinForms entwickelte grafische Oberfläche, welche eine Instanz von TuringLogic erzeugt und den Benutzer interagieren lässt.
-
Implementierung der in CPP.Shared definierten Interfaces und damit der eigentlichen Touring-Logik in C++/CLI.
-
C# - Portierung von TuringSimulator.CPP.Core um die Möglichkeit der sprachübergreifenden Implementierung in .NET zu demonstrieren.
-
UnitTests (per NUnit, z.B. ReSharper verwenden um Tests komfortabel ausführen zu können)
3.3 Funktionsrelevante Klassen ==========================
3.3.1 TuringLogic Beinhaltet Programmcode zur Turing-konformen Abarbeitung der in TuringLogic.CommandList geladenen Kommandos.
3.3.2 TuringCommandList Liste aus ITuringCommand's (ListCppShared::ITuringCommand^) um eine Datei mit mehreren Turing-Kommandos von einem Datenträger zu lesen und z.B. für TuringLogik zur Verfügung zu stellen
3.3.3 TuringCommand Programmcode, um ein einzelnes Turing-Kommando logisch darzustellen bzw. aus einem String zu laden.