Meine Programmierfreunde sagen mir immer, dass HTML eine Auszeichnungssprache und C ++ eine Programmiersprache ist. Wenn ich sie frage, was der Unterschied ist, geben sie mir keine vernünftige Antwort.
Was könnte C ++ zu einer Programmiersprache machen und HTML nicht?
programming-languages
terminology
markup
Lucas - Better Coding Academy
quelle
quelle
Antworten:
Eine Programmiersprache ist eine Notation, mit der Anweisungen an eine Maschine übergeben werden. Nach dieser Definition sind sowohl C ++ als auch HTML Programmiersprachen, ebenso wie die Notation, mit der Joseph Marie Jacquard 1801 seine Webstühle programmierte .
Mit der Verbreitung von Sprachen, die zum Strukturieren und / oder Beschreiben von Daten verwendet werden, hat sich die Definition einer Programmiersprache dahingehend verschoben, dass nur Sprachen berücksichtigt werden, die Algorithmen ausdrücken können. Dies ist die heute gebräuchlichste Definition und schließt Sprachen wie HTML oder XML aus.
Im Zentrum der aktuellen Definition steht das Konzept der Turing-Vollständigkeit . Die meisten Programmiersprachen sind Turing-vollständig, und die Turing-Vollständigkeit wird oft als das eine entscheidende Merkmal angegeben, das eine Programmiersprache von jeder anderen Computersprache unterscheidet. Dies ist als Faustregel gut genug, aber nicht ganz korrekt:
Je nach Kontext können Sie eine beliebige Definition auswählen.
Bearbeiten:
Es sei ferner angemerkt, dass eine Implementierung einer Sprache der Sprache selbst keine Merkmale verleiht, zum Beispiel: Die Spezifikation einer Sprache kann eine vollständige Sprache definieren, jemand könnte sie zufällig implementieren und dabei die Vollständigkeit der Sprache weglassen. Diese Implementierung, die nicht vollständig ist, bedeutet jedoch nicht, dass die Sprache selbst nicht vollständig ist (vielmehr bedeutet dies wahrscheinlich, dass die Implementierung nicht konform ist). Die Details einer Sprache und die Details einer bestimmten Implementierung einer Sprache sind als separate Dinge zu erkennen. Deshalb ist es ungenau, eine interpretierte oder kompilierte Sprache usw. zu nennen.
quelle
- "Ich weiß es, wenn ich es sehe" Wikipedia-Artikel
Wie Obszönität, ich denke, wir alle kennen eine Programmiersprache, wenn wir eine sehen. Das OP ist eindeutig der Fall, da Sie C ++ bereits als Programmiersprache und HTML nicht als Programmiersprache eingestuft haben.
Was genau ist das Ziel einer formalen Definition? Yannis hat bereits ausführlich dargelegt, warum die populärste Definition, die Turing-Vollständigkeit, fehlerhaft ist: Sie führt zu einer Kategorisierung, die dem Test "Ich weiß es, wenn ich es sehe" widerspricht.
Ich sage Ihnen, dass jede Definition, die Sie erstellen können, zu einigen Sprachen führen wird, von denen wir alle der Ansicht sind, dass sie keine "Programmiersprachen" sind, die als solche eingestuft werden. oder auf einigen Sprachen , die wir alle fühlen sind „Programmierung“ Sprachen werden als kategorisiert werden nicht so zu sein.
Warum gehst du nicht einfach mit deinem Bauch? Ich benutze eine einfache Heuristik: Eine Programmiersprache ist eine Sprache, deren Hauptzweck meiner Meinung nach und nach meinen Beobachtungen darin besteht, Programme zu schreiben. Inhalte nicht kennzeichnen. XML nicht zu transformieren. Programme für allgemeine Zwecke schreiben. Ich würde es lieber einfach wissen, wenn ich es sehe, als zu versuchen, eine formale Definition festzunageln, und ich sehe keinen echten Wert, der sich aus dem Versuch einer solchen Definition ergeben könnte.
quelle
Markup-Sprachen befassen sich hauptsächlich mit der Darstellung der Informationen und fehlen im Allgemeinen in der Programmierinfrastruktur für Variablen, Mathematik, Vergleiche, Entscheidungsfindung (wenn ... dann), Schleifen (für, während) usw.
HTML an sich ist statisch; Das heißt, ähnlich wie bei einem Textverarbeitungsprogramm sollen die Informationen so dargestellt werden, wie sie sind. Nur mit der Hinzufügung einer Art Programmiersprache (normalerweise Skriptsprachen wie JavaScript, PHP usw.) können die HTML-Webseiten einen "sich ändernden" Inhalt haben. Die Skriptsprachen bieten die "Programmier" -Möglichkeiten mit Variablen, Mathematik, Vergleichen, Entscheidungsfindung, Schleifen usw.
quelle
HTML ist eine deklarative Sprache. Es macht nicht viel für sich allein, es beschreibt nur ein Dokument und seinen Inhalt (unter Verwendung von Tags, die eine semantische Bedeutung haben).
C ++ dagegen macht etwas. Es definiert Funktionen und Klassen, beschreibt aber auch, wie diese Funktionen zusammenarbeiten sollen, wie ihre Ein- und Ausgänge sinnvoll miteinander verknüpft sind und wie die Anwendung als Ganzes ausgeführt werden soll.
quelle