Frage

Ich bin ein Anfang Student in CS und meine Klassen sind meist in Java. Ich werde zur Zeit durch „Little Schemer“ als Selbststudium, und in dem Prozess, herauszufinden, wie zu tun, dass ich zahlreiche Hinweise auf „Implementierungen“ von Schema gefunden habe. Meine Frage ist, was sind Implementierungen?

Sind sie Unter Dialekte von Scheme, oder ist das etwas anderes (DrScheme scheinen für unterschiedliche „Flavours“ der Sprache zu ermöglichen)? Ist es nur der Name zu einem bestimmten Ökosystem gegeben Einbau eine IDE, Interpreter, interaktives Tool und dergleichen?

Haben alle anderen Sprachen (zum Beispiel Java) auch eine Vielzahl von „Implementierungen“ haben, oder ist es etwas reserviert „offen“ Sprachen?

Danke,

Joss Delage

War es hilfreich?

Lösung

Eine Implementierung einer Programmiersprache ist ein Compiler oder Interpreter für diese Sprache. Zusätzliche Komponenten des Öko-Systems, wie IDEs können einen Teil einer Implementierung sein, sind aber nicht notwendig. Für Schema gibt es viele, zum Beispiel DrScheme, Guile, Gambit.

Viele Programmiersprachen haben unterschiedliche Implementierungen, aber alle Implementierungen einer bestimmten Sprache implementieren sollen (das heißt, die Kompilierung) exakt die gleichen Dialekt. Das ist am einfachsten, wenn es eine klare und offizielle Spezifikation der Sprache ist, wie es der Fall für Schema ist. Natürlich gehen die meisten Sprachspezifikationen durch viele Versionen, so verschiedene Implementierungen verschiedene Versionen der Sprache unterstützen.

Für Java gibt es Implementierungen von Sun, Oracle, IBM, und ich denke, eine andere.

Andere Tipps

Ein Implementierung eine Sprache bedeutet jedes Programm, das läuft oder compiliert, dass bestimmte Sprache.

In Schema in spezifischen, es ist eine gute Frage, denn es gibt mehrere größere Änderungen der Sprachspezifikation gewesen sein. Darüber hinaus gibt es eine Vielzahl von Sprachen (einschließlich dem ursprünglichen Schema!), Die Scheme genannt werden, die nicht vollständig eine der Spezifikationen folgen. Die Anfänger Sprachen für HTDP sind klein, um ein wenig restriktiv, wie Probleme zu lösen sind (und wahrscheinlich auch aus anderen Gründen). GIMP bis vor kurzem einen Nicht-Standard-Scheme-Interpreter genannt SIOD (Schema In One Defun oder Scheme In One Day) verwendet. Es gibt viele andere Beispiele; siehe zum Beispiel Dialekten Scheme für PLT Scheme nehmen auf Sprache Standard-Support.

Eine Implementierung ist ein bestimmte Hersteller Version / Produkt, das Gerät (gemäß liefert, etc.) einen gewissen Standard (Klasse Interface, API, Sprachspezifikation, usw.).

Um dies einfach zu machen Analogie zu verstehen, sowohl Coca-Cola und Pepsi können in Betracht gezogen werden Implementierungen von Soda sein (oder, wenn Sie so geneigt sind, von Pop). Soda / Pop ist ein allgemeines Konzept, und Coca-Cola und Pepsi sind insbesondere Produkte, die mit diesem Konzept entsprechen.

In ähnlicher Weise Mac OS X und Linux sind beide Implementierungen der Single UNIX Specification. Die GNU C ++ Compiler und der Intel C ++ Compiler Implementierungen der C ++ Programmiersprache. Die Sun Java 6 JDK, die OpenJDK und der GNU Compiler für Java (GCJ) sind alle Implementierungen von Java.

Innerhalb von Java, wie Sie bald entdecken, das Wort „Geräte“ als Schlüsselwort verwendet, wenn eine Klasse eine konkrete Definition einer Funktion bietet in einer Schnittstelle deklariert, weil durch die konkrete Definition bereitstellt, dass die Klasse implementiert die Anforderungen der allgemeinen Konzept der Schnittstelle ausgeführt.

Ich hoffe, das hilft verbessern Ihr Verständnis für die Bedeutung von „Implementierung“.

Eine Implementierung ist ein Compiler oder Interpreter für eine Programmiersprache; es ist ein Weg, die Anweisungen der Sprache in Verhalten zu übersetzen. Die häufigste Sprache mit mehreren Implementierungen heute ist vermutlich JavaScript.

Wenn Leute über Implementierungen sprechen, ist es oft im Zusammenhang mit den Problemen zu befassen, die sie von mit mehreren Einsen auftreten. Es gibt Vorteile - Ihr Lieblings Dinge so tun wie Sie - aber die Probleme frustrierend sein kann. Da Chrome und Firefox und IE und Safari alle verhalten sich etwas anders mit dem gleichen JavaScript-Code, Web-Entwickler haben viel Zeit testen ihren Code auf den verschiedenen Browsern zu verbringen, Erfassen, welche Sie verwenden, und die Anpassung des Codes an die leicht unterschiedliche Sätze von Bibliotheken, Bugs, etc.

Einige Sprachen durch eine Standard-Implementierung (Rubin, Perl, Python) und nicht durch ein Dokument definiert, weshalb Sie nicht hören von mehreren Implementierungen von denen. Auch in diesen Sprachen haben Sie das damit verbundene Problem der verschiedenen Versionen unterschiedliches Verhalten aufweisen.

Implementationen sind kein neues Phänomen. Zurück in seine High-School-Tagen, Bill Gates seinen Anfang Schreiben ist eine von vielen BASIC-Implementierungen erhalten, zum Beispiel

Was sind die Probleme noch schlimmer mit Schema macht als mit anderen Sprachen ist, dass die Spezifikation absichtlich klein ist - versucht nur sehr wenig zu spezifizieren. Der Vorteil ist, dass die Leute, die Sprachen Design Programmierung eine neue experimentelle Schema Implementierung mit ordentlich neuen Eigenschaften relativ schnell erstellen können. Nachdem sie dies getan haben, können sie, dass auch die kleine Sprache behaupten, dass sie geschrieben habe, ist „nützlich“, weil andere haben gezeigt, wie die kleine Sprache zu einem nützlichen einem verlängern. Allerdings gibt es eine Menge Arbeit in dieser „einfach eine Frage der Programmierung“, und jede Implementierung muss sehr viele Entscheidungen über ihre eigenen machen, so dass die Unterschiede zwischen den Implementierungen sind zahlreich und groß. So sind die mit mehreren Implementierungen verbundenen Probleme sind zahlreich und groß in Schema im Vergleich zu vollständigen angegebenen Sprachen.

Das Schema Gemeinschaft erkennt das Problem, zusammen mit dem Vorteil einer kleinen Beschreibung und arbeitet aktiv an Möglichkeiten, um den Übergang von der experimentellen Sprache nützliche Sprache klarer mit neuen Versionen des Standards zu machen.    http://scheme-reports.org/

Für jetzt (2010), empfehle ich persönlich, dass neue Benutzer beginnen in PLT Scheme arbeiten, und ich bin froh, dass du dort gestartet. Ziehen Sie nicht die vielen Implementierungen Problem abschrecken lassen: Es gibt eine große Vorteil ist, in der Sprache zu arbeiten, dass Programmiersprache Designer für sich selbst entworfen. PLT hat eine große Gemeinschaft und einen guten Satz von Bibliotheken, die Sie die Schwierigkeiten oben skizzierten überwinden helfen.

Best, Grem

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