Tag: language-design

Ein tag für Fragen rund um das design jeder Aspekt der Programmiersprachen.

Was ist typestate?

Anzahl der Antworten 3 Antworten
Was bedeutet TypeState zu finden in Bezug auf design-Sprache? Ich sah es erwähnt in einigen Gesprächen bezüglich einer neuen Sprache, die von mozilla namens Rost. InformationsquelleAutor Brad The App Guy | 2010-07-09

Warum C# erlauben {} code-Blöcken ohne eine vorhergehende Anweisung?

Anzahl der Antworten 9 Antworten
Warum C# ermöglichen die code-Blöcke ohne eine vorhergehende Erklärung (z.B. if, else, for, while)? void Main() { { //any sense in this? Console.Write("foo"); } } Gibt es einen Grund sollte es nicht? guter Punkt, ich hasse alle

Liste der Lua abgeleitet VMs und Sprachen

Anzahl der Antworten 3 Antworten
Ist es ein Kompendium von virtuellen Maschinen und Sprachen abgeleitet oder inspiriert von Lua? Durch abgeleitete, ich meine darüber hinausgehende Nutzung Einbettung und Erweiterung mit Modulen. Ich bin zu wollen Forschung die Lua-Technologie-Baum, und bin auf der

Warum Eigenschaften sind nicht declarables-in-Schnittstellen

Anzahl der Antworten 2 Antworten
In Actionscript 3 kann ich nicht erklären vars-in-Schnittstellen. Ich verstehe es nicht. Ich weiß, ich kann arbeiten, um durch das definieren von Getter und setter, aber was ist, wenn ich wollen einfach nur ein einfaches öffentliches Eigentum?

Warum sind die Scheiben in Python 3 noch Kopien und keine Aussicht?

Anzahl der Antworten 2 Antworten
Wie ich erst jetzt bemerkt, nachdem die Kommentare auf diese Antwort, Scheiben in Python 3 zurück flache Kopien von was auch immer Sie schneiden, anstatt Ansichten. Warum ist dies immer noch der Fall? Auch abgesehen von numpy

Warum Wert-Typen gespeichert sind, auf Stacks?

Anzahl der Antworten 6 Antworten
Warum C# (.Net) bevorzugen stack zum speichern von Wert-Typen? Was ist der Hauptgrund hinter diesem Entwurf? Ist es, weil der lese - /schreib-Operationen auf dem stack besser nutzen der Maschine Prozessor? Auch, vielleicht können Sie begründen, warum

Warum sind leere Ausdrücke, die legal in C/C++?

Anzahl der Antworten 11 Antworten
int main() { int var = 0;; //Typo which compiles just fine } Holen Sie sich Ihre Hände auf einem mikrocontroller mit einer geringen Anzahl von Zeiten, und bald werden Sie wollen, stellen Sie die Verwendung von

Feste Objekt-Id für System-Objekte und Kleine ganze zahlen in Ruby

Anzahl der Antworten 1 Antworten
Warum system-Objekte wie null, true oder false haben eine Feste Objekt-id in Ruby. Auch ich habe versucht, drucken Sie die Objekt-ids der zahlen, Sie sind die gleichen, und Folgen Sie eine ungerade Anzahl Sequenz-Muster. Keine Erklärung für

Warum nicht C# statische Klasse Erweiterung Methoden unterstützt?

Anzahl der Antworten 6 Antworten
Weiß ich aus diese Frage, dass extension-Methoden können nur auf Instanzen der Klasse, nicht das statische Klasse selbst. Das heißt, ich kann nicht verlängern nützlich statische Klassen wie Convert und Math. Was ich wissen will ist, warum

Was macht PHP langsamer als Java oder C#?

Anzahl der Antworten 8 Antworten
Dies ist etwas ich habe mich immer gefragt: Warum ist PHP langsamer als Java oder C#, wenn alle 3 dieser Sprachen bekommen kompiliert zu bytecode und dann von dort ausgeführt? Ich weiß, dass normalerweise PHP neu kompiliert

Scala ist .Typ und Java .Klasse literal

Anzahl der Antworten 2 Antworten
Frage ich mich, aus einer Sprache, die design-Perspektive, warum Scala entfernt hat Java die Klassen-literal (e. g. String.class) und ersetzt es mit classOf[String], hat aber dann Hinzugefügt "literalen" mit seinen Singletons wie Singleton.type sondern so etwas wie

Was ist der Unterschied zwischen einer Klasse und eines Typs in Scala (und Java)?

Anzahl der Antworten 4 Antworten
Scala Wo kann Unterschiede zwischen einer Klasse und eines Typs beobachtet werden in Scala und warum ist diese Unterscheidung wichtig? Ist es nur eine überlegung aus der design-Sprache point-of-view-oder hat es die "praktischen" Auswirkungen bei der Programmierung

Tut Haskell haben Zeiger?

Anzahl der Antworten 3 Antworten
Wissen Sie, wenn gibt es Zeiger in Haskell? Wenn ja: wie nutzen Sie diese? Gibt es irgendwelche Probleme mit Ihnen? Und warum sind Sie nicht populärer? Falls Nein: gibt es einen Grund dafür? Siehe auch stackoverflow.com/questions/2386210/... InformationsquelleAutor

Wie sieht Ihr Lieblings-Sprache Griff tief die Rekursion?

Anzahl der Antworten 12 Antworten
Ich habe vor kurzem angefangen zu lernen, Python und ich war ziemlich überrascht, eine 1000 Tiefe der Rekursion beschränken (Standard). Wenn du es hoch genug ist, über 30000, stürzt mit einem segmentation fault genau wie C. Obwohl

C# readonly vs Java-Finale

Anzahl der Antworten 1 Antworten
In Java final bedeutet, dass eine variable kann nur zugewiesen werden, einmal, aber, dass die Zuordnung passieren kann überall im Programm. In C# readonly bedeutet, ein Feld kann nur zugeordnet werden, in einer Konstruktor, die, IMO, deutlich

Konventionen für Ausnahmen oder Fehler-codes

Anzahl der Antworten 22 Antworten
Gestern hatte ich eine hitzige Diskussion mit einem Kollegen, was wäre die bevorzugte Methode der Fehlerberichterstattung. Vor allem wir diskutieren über die Nutzung von Ausnahmen oder Fehler-codes für die Berichterstattung Fehler zwischen Anwendungen oder-Module. Welche Regeln Sie

Warum war die Aussage (j++); verboten?

Anzahl der Antworten 3 Antworten
Dem folgenden code falsch ist (sehe es auf ideone): public class Test { public static void Main() { int j = 5; (j++); //if we remove the "(" and ")" then this compiles fine. } } Fehler

Funktion Argumente (in Python zum Beispiel)

Anzahl der Antworten 7 Antworten
Was sind die [function] - Argumente? Was werden Sie verwendet? Ich begann zu lernen Python sehr vor kurzem, ich bin neu in der Programmierung und ich entschuldige mich für diese grundlegende Frage. In jeder Python-tutorial gehe ich

Ich verstehe nicht, warum brauchen wir die "neuen" Schlüsselwort

Anzahl der Antworten 6 Antworten
Ich bin neu in C# von C++ hintergrund. In C++ können Sie dies tun: class MyClass{ .... }; int main() { MyClass object; //this will create object in memory MyClass* object = new MyClass(); //this does same

Implementierung der Typ-Inferenz

Anzahl der Antworten 5 Antworten
Sehe ich einige interessante Diskussionen hier über statische vs. dynamische Typisierung. Ich in der Regel bevorzugen die statische Typisierung, aufgrund der Kompilierung die Typüberprüfung, besser dokumentierten code, etc. Jedoch, ich bin damit einverstanden, dass Sie verunstalteten den

Warum sind slice und range upper-bound-exklusiv?

Anzahl der Antworten 5 Antworten
Disclaimer: ich bin nicht gefragt wenn das upper-bound stopargument slice()und range() ist exklusiv-oder - wie um diese Funktionen zu verwenden. Aufrufe der rangeund sliceFunktionen, sowie die slice-notation [start:stop] alle beziehen sich auf Gruppen von zahlen. range([start], stop[,

Warum nicht Rost-support-Eigenschaft Objekt upcasting?

Anzahl der Antworten 3 Antworten
Angesichts dieser code: trait Base { fn a(&self); fn b(&self); fn c(&self); fn d(&self); } trait Derived : Base { fn e(&self); fn f(&self); fn g(&self); } struct S; impl Derived for S { fn e(&self) {}

Warum nicht Ruby-Unterstützung i++ oder i-- (Inkrement/Dekrement-Operatoren)?

Anzahl der Antworten 9 Antworten
Den pre/post-Inkrement/Dekrement-operator (++ und --) sind ziemlich standard-programming language-syntax (für prozedurale und objektorientierte Sprachen, zumindest). Warum nicht Ruby, der Sie unterstützt? Ich verstehe, Sie könnten das gleiche erreichen mit += und -=, aber es scheint nur seltsam

Warum kann man nicht mehrere Schnittstellen in einem bounded-wildcard-generic?

Anzahl der Antworten 5 Antworten
Ich weiß, es gibt alle Arten von counter-intuitive Eigenschaften von Java die generischen Typen. Hier ist einer in allem, dass ich nicht verstehe, und die ich bin der Hoffnung, jemand kann mir erklären. Bei der Angabe eines

Warum nicht Java erlauben generischen Unterklassen von Throwable?

Anzahl der Antworten 5 Antworten
Entsprechend der Java-Sprache Sepecification, 3. Auflage: Es ist eine compile-Zeit-Fehler, wenn eine generische Klasse ist eine direkte oder indirekte Unterklasse von Throwable. Ich möchte verstehen, warum diese Entscheidung getroffen wurde. Was ist falsch mit generischen Ausnahmen? (Soweit

Warum HttpRequest.HttpMethod ist eine Zeichenfolge anstelle von Enum?

Anzahl der Antworten 4 Antworten
In der Referenz von HttpRequest.HttpMethod.NET Framework, request-Typ wird deklariert mit System.String geben. In RFC 2616 alle HTTP-request-Methoden deklariert sind (z.B. POST, GET, PUT, DELETE...). Gibt es auch ein ähnliches Verhalten in HttpWebRequest und WebRequest Klassen .NET. Java

"Least Astonishment" und die Veränderliche Default-Argument

Anzahl der Antworten 30 Antworten
Jemand basteln mit Python-lange genug hat gebissen (oder in Stücke gerissen) durch das folgende Problem: def foo(a=): a.append(5) return a Python-Novizen würde erwarten, dass diese Funktion immer wieder eine Liste mit nur einem element: [5]. Das Ergebnis

Wie funktioniert keyword "this" innerhalb der Funktion?

Anzahl der Antworten 5 Antworten
Ich kam gerade über eine interessante situation, in JavaScript. Ich habe eine Klasse mit einer Methode, die definiert, mehrere Objekte mit dem Objekt-literal Schreibweise. Im inneren dieser Objekte, die this Zeiger verwendet wird. Aus dem Verhalten des

Warum müssen wir definieren, = = und != in C#?

Anzahl der Antworten 13 Antworten
Den C# - compiler erfordert, dass immer, wenn Sie einen benutzerdefinierten Typ definiert Betreiber == es muss auch definieren != (siehe hier). Warum? Ich bin neugierig, zu wissen, warum die Entwickler dachten, dass es notwendig und warum

Warum nicht C++, müssen die scope-resolution-operator?

Anzahl der Antworten 7 Antworten
(Ich weiß, was die scope-resolution-operator ist, und wie und Wann es zu benutzen.) Warum C++ die :: operator statt mit der . Betreiber für diesen Zweck? Java verfügt nicht über einen separaten Betreiber, und funktioniert einwandfrei. Gibt

Bounding Generika mit "super" - Schlüsselwort

Anzahl der Antworten 4 Antworten
Warum kann ich super nur mit Platzhaltern und nicht mit Typ-Parameter? Beispielsweise in der Collection - Schnittstelle, warum ist das toArray Methode nicht geschrieben wie dieser interface Collection<T>{ <S super T> S toArray(S a); } Können Sie

was ist der Unterschied zwischen einem Befehl und eine Anweisung

Anzahl der Antworten 6 Antworten
Oft beim Lesen über Tcl (z.B. http://antirez.com/articoli/tclmisunderstood.html) Sie Lesen, dass "alles ist ein Befehl". Manchmal können Sie auch hören, wie andere Sprachen wie Tcl, "Befehl Sprachen." Mir mit meinem hintergrund in anderen Sprachen, und ich habe nur

Die Leistung der "direkten" virtuelle call vs. call-Schnittstelle in C#

Anzahl der Antworten 5 Antworten
Dieser benchmark erscheint, um zu zeigen, dass der Aufruf einer virtuellen Methode direkt am Objekt-Referenz ist schneller als die Berufung auf die Referenz auf das interface dieses Objekts implementiert. In anderen Worten: interface IFoo { void Bar();

Vergleicht man alle Elemente der beiden Tupel (mit dem all () - Funktion)

Anzahl der Antworten 5 Antworten
Also ich weiß, dass Vergleiche auf Tupeln Arbeit lexikographisch: Tupeln und Listen werden lexikographisch verglichen mit Vergleich der entsprechenden Elemente. Dies bedeutet, dass zum vergleichen gleich, jedes element muss vergleichen Sie gleich und die beiden Sequenzen müssen

Kann nicht festgelegt werden, die Attribute der object-Klasse

Anzahl der Antworten 6 Antworten
So, ich war Herumspielen mit Python bei der Beantwortung diese Frage, und ich entdeckte, dass diese nicht gültig ist: o = object() o.attr = 'hello' aufgrund einer AttributeError: 'object' object has no attribute 'attr'. Jedoch mit einer

die Vorteile, Nachteile und Schwierigkeiten zu schreiben, eine Sprache zu verwenden .NET

Anzahl der Antworten 1 Antworten
Ich denken werde, möglicherweise Entwurf/Bau einer Sprache an einem gewissen Punkt, und was sind die Vorteile, Nachteile und Schwierigkeiten des Schreibens zu laufen .NET framework/CLR? Das ist ein ziemlich großer Auftrag! InformationsquelleAutor RCIX | 2009-08-12

Warum können wir nicht erstellen Sie eine Instanz einer abstrakten Klasse?

Anzahl der Antworten 6 Antworten
Fand ich an vielen stellen, dass : Eine Abstrakte Klasse ist eine Klasse, die verwendet werden soll als eine Basis-Klasse. Eine Abstrakte Klasse ist eine Klasse, die mindestens eine Rein Virtuelle Funktion. Aber eine Sache, die fällt

Boolean-true - positiv 1 oder negativ 1?

Anzahl der Antworten 11 Antworten
Ich bin der Gestaltung einer Sprache, und Sie versuchen, zu entscheiden, ob true sollte 0x01 oder 0xFF. Natürlich werden alle nicht-null-Werte werden in true umgewandelt werden, aber ich versuche zu entscheiden, auf die genaue interne Darstellung. Was

Warum brauchen wir brechen nach dem Fall Aussagen?

Anzahl der Antworten 17 Antworten
Warum macht das nicht der compiler automatisch setzen break-Anweisungen, die nach jedem code-block in-Schalter? Ist es aus historischen Gründen? Wann möchten Sie mehrere code-Blöcke ausführen? InformationsquelleAutor der Frage unj2 | 2010-04-25

Warum gibt es keine sortierten Containern in Python standard-Bibliotheken?

Anzahl der Antworten 6 Antworten
Gibt es eine Python-design-Entscheidung (PEP) das schließt einen sortierten container Hinzugefügt wird Python? (OrderedDict ist nicht einen sortierten container, da ist es bestellt durch Einfügung Reihenfolge.) InformationsquelleAutor der Frage Neil G | 2011-05-10

Bedeutet R eine assert-Anweisung wie in python?

Anzahl der Antworten 3 Antworten
einer Anweisung, die prüft, ob etwas wahr ist, und wenn nicht gedruckt eine bestimmte Fehlermeldung und beendet InformationsquelleAutor der Frage Dan | 2010-02-10

Warum können nicht alle operator-überladung für Zeiger erlaubt, zu arbeiten?

Anzahl der Antworten 8 Antworten
Als per Kommentar unter diese AntwortReferenzen eingeführt wurden in Erster Linie zur Unterstützung von operator-überladung, welche Angebote Bjarne Stroustrup: Referenzen eingeführt wurden in Erster Linie zur Unterstützung von operator-überladung. C geht jeder Funktion argument Wert, und wo

Wie Sie Kraft Konstruktor-Signaturen und statische Methoden?

Anzahl der Antworten 9 Antworten
Gibt es eine Möglichkeit zu zwingen, einen (Kinder -) Klasse die Konstruktoren mit bestimmten Signaturen oder insbesondere statische Methoden in C# oder Java? Können Sie nicht offensichtlich die Verwendung von Schnittstellen für dieses, und ich weiß, dass

Warum optionale Parameter müssen am Ende der Erklärung

Anzahl der Antworten 6 Antworten
In allen Programmiersprachen unterstützt optionale Parameter, die ich gesehen habe, es ist eine imitation, der optionale Parameter müssen am Ende der Erklärung. Benötigt keine Parameter enthalten sein können, nachdem ein optionales Element. Was ist der Grund ?

Was genau ist oder war der Zweck der C++ - Funktion-style-casts?

Anzahl der Antworten 6 Antworten
Spreche ich über den "Typ(Wert)"-style-casts. Die Bücher, die ich gelesen haben, übergehen Sie schnell und sagte nur, dass Sie semantisch äquivalent zu C-style-casts, "(Typ) den Wert" sind, und dass Sie vermieden werden sollten. Wenn Sie das gleiche

Das überladen von Funktionen durch den Rückgabetyp?

Anzahl der Antworten 14 Antworten
Warum nicht mehr mainstream statisch typisierte Sprachen support Funktion/Methode überladen durch den Rückgabetyp? Ich kann nicht jeder denken, dass zu tun. Es scheint nicht weniger nützlich oder sinnvoll als Unterstützung überlast, die durch den parameter Typ. Wie

Warum ist das hinzufügen von null, um eine Zeichenfolge legal?

Anzahl der Antworten 5 Antworten
Dem MSDN-Artikel auf String Basics zeigt dies: string str = "hello"; string nullStr = null; string emptyStr = ""; string tempStr = str + nullStr; //tempStr = "hello" bool b = (emptyStr == nullStr);//b = false; string

Warum Python nicht eine writeln () - Methode?

Anzahl der Antworten 5 Antworten
Wenn wir brauchen, um eine neue Zeile schreiben, um eine Datei, die wir haben, um zu code: file_output.write('Fooo line \n') Gibt es irgendwelche Gründe, warum Python nicht eine writeln() Methode? InformationsquelleAutor der Frage systempuntoout | 2010-04-04

c# - switch-Anweisung mehr als begrenzt vb.net 'Fall'

Anzahl der Antworten 3 Antworten
Las ich einen interessanten Artikel hier und es machte einen interessanten Punkt über die 'case' - Anweisung in vb.net vs der 'switch' - Anweisung in C#, dem habe ich unten eingefügt: Den folgenden Visual Basic Select Case-Anweisung

C# design: Warum ist neue/override erforderlich, abstrakte Methoden, aber nicht auf virtuelle Methoden?

Anzahl der Antworten 5 Antworten
Warum ist neue/override erforderlich, abstrakte Methoden, aber nicht auf virtuelle Methoden? Beispiel 1: abstract class ShapesClass { abstract public int Area(); //abstract! } class Square : ShapesClass { int x, y; public int Area() //Error: missing 'override'