Frage

Kann jede Sprache zum Programmieren in jedem Paradigma verwendet werden?C hat zum Beispiel keine Klassen, aber es ist möglich, in OOP zu programmieren.Es gibt einige Sprachen (z. B. Assembler), in denen ich OOP nicht verwenden kann.

War es hilfreich?

Lösung

Ja, einfach aufgrund der Tatsache, dass Sie einen Interpreter für Ihr $favorite $paradigma in der Hostsprache implementieren können.

In der Praxis ist dies jedoch nicht machbar, effizient oder richtig.

Andere Tipps

C++ ist letztendlich eine Assembly. Sie haben lediglich einen Compiler, der die Assembly aus einer schöneren Beschreibung für Sie schreibt.Sie können also sicher OOP in Assembler ausführen, genauso wie Sie OOP in C ausführen können.Es ist nur so, dass viele der OO-Konzepte am Ende mit Konventionen und Programmierdisziplin implementiert werden, anstatt durch die Struktur der Sprache erzwungen zu werden, mit dem Ergebnis, dass große Klassen von Fehlern möglich werden, sodass Ihre Sprachtools wahrscheinlich nicht sehr gut sind um Ihnen bei der Suche zu helfen.

Ähnliche Argumente ergeben sich für die meisten Paradigmen-/Sprachinkongruenzen.Viele objektorientierte Programme haben wurde auf diese Weise in C geschrieben, sodass es sogar eine einigermaßen praktische Sache sein kann, nicht nur eine akademische Angelegenheit.

Es kann etwas schwieriger sein, wenn Sie es wollen entfernen Einschränkungen, anstatt sie hinzuzufügen.

In auf Reinheit basierenden Sprachen wie Haskell und Mercury können Sie Pakete mit gekapseltem, veränderlichem Zustand im objektorientierten Stil nicht plötzlich mitten in beliebigem reinem Code ausbrechen (zumindest nicht ohne die Verwendung von „Alle Wetten sind ungültig“-Funktionen). wie unsafePerformIO in Haskell oder promise_pure in Mercury, um den Compiler anzulügen, und an diesem Punkt könnte Ihr Programm völlig ausfallen, es sei denn, Sie können eine reine Schnittstelle um die Bereiche wickeln, in denen Sie dies tun).Sie können jedoch schreiben ganz Programme im prozeduralen oder objektorientierten Stil in diesen Sprachen, indem sie niemals den Mechanismus verlassen, den sie zum Ausführen von IO verwenden.

Wenn Sie die Verwendung von Duck-Typing in dynamischen Sprachen als Paradigma betrachten, ist es ebenfalls ziemlich mühsam, in Sprachen mit statischer Typisierung etwas Ähnliches zu erreichen, aber Sie können immer einen Weg finden, Ihre dynamischen Typen als darzustellen Daten.Aber Sie stellen wieder fest, dass Sie Dinge mit Konventionen und Neuimplementierungen tun, die Sie kostenlos bekommen würden, wenn Sie wirklich eine Duck-Typing-Sprache verwenden würden.

Ich bin mir ziemlich sicher, dass es schwierig sein wird, eine Sprache zu finden (die zum Schreiben von Allzweckprogrammen geeignet ist). kippen angepasst werden, um Code in jedem beliebigen Paradigma zu schreiben.Die Anpassung erzeugt möglicherweise keinen sehr effizienten Code (manchmal kann dies jedoch der Fall sein;Die Anpassung von C oder Assembler an ein beliebiges Paradigma kann in der Regel genauso effizient erfolgen, als ob Sie eine Sprache hätten, die auf dieses Paradigma abgestimmt wäre, und es wird im Hinblick auf die Zeit des Programmierers mit ziemlicher Sicherheit schrecklich ineffizient sein.

Nein, nicht alle Sprachen können zum Programmieren in jedem Paradigma verwendet werden.Bei den bekannteren Programmen – Python, C++ usw. – können Sie jedoch wählen, wie Sie programmieren möchten.Sogar PHP fügt OO-Unterstützung hinzu.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top