Abstrakte Maschinenmodelle von Programmierern: Das Meta-Wissen in der Softwareentwicklung verstehen

Dieser Artikel untersucht die "Abstrakten Maschinenmodelle" (AMM), die Programmierer beim Schreiben von Software verwenden. Der Autor berichtet von persönlichen Erfahrungen beim Entwurf von Programmierwerkzeugen und hebt die enge Verbindung zwischen Hardwarearchitektur und Programmiersprachen hervor. Er argumentiert, dass das mentale AMM eines Programmierers nicht nur ein Sprach- oder Hardwaremodell ist, sondern eine Abstraktion, die extrafunktionale Verhaltensweisen wie Zeit, Speicher und E/A umfasst. Durch die Analyse von Sprachen wie Haskell unterscheidet der Autor zwischen beschreibenden und spezifizierenden Modellen und beschreibt die Anwendung von AMMs in verschiedenen Programmiersprachen und Hardwareplattformen. Der Artikel untersucht außerdem die Rolle von AMMs bei der Bewertung von Programmierfähigkeiten und beim Aufbau von Software-Ökosystemen und analysiert, wie verschiedene Arten von Sprachdesignern AMMs beeinflussen. Abschließend fasst der Autor die Bedeutung von AMMs in der Softwareentwicklung zusammen und weist auf zukünftige Forschungsrichtungen hin.