Diskussion:Literal
logik
[Quelltext bearbeiten]Trifft es wirklich auf zeichen und verknüpfungen von zeichen zu? bei KNF steht das nur die einzelnen zeichen literale sind. --78.48.75.125 Diskussion:Literal#c-78.48.75.125-2010-01-20T11:22:00.000Z-logik11
substantivische verwendung
[Quelltext bearbeiten]Ich kenne Literal nur als Substantiv und bei uns in der Vorlesung stand es für atomare Aussagen oder deren Negation, also zum Beispiel oder auch . Verknüpfte Aussagen wie gehörten nicht dazu. Weiß das jemand genauer? --Matthäus Wander 12:16, 17. Feb 2005 (CET)
antwort: du siehst die verknüpfte aussage nur als verknüpft. betrachtest du die aussage aber als ganzes, kannst du an ihre stelle wiederum oder auch setzen, wobei A für die verknüpfte Aussage steht. Du darfst sie nicht sequentiell lesen, sondern modular, so wie du einen Weg gehen kannst, ihn aber auch aus einer Höhe aus insgesamt [dafür undeutlicher] betrachten. 134.2.212.25 14:12, 28. Feb 2006 (CET)
programmiersprachen
[Quelltext bearbeiten]Was ist mit Literalen (String-"Zitate" im QUelltext) in Programmiersprachen? (nicht signierter Beitrag von 84.56.35.0 (Diskussion) 2:55, 22. Mai 2006)
regexp
[Quelltext bearbeiten]evtl. koennte noch der unterschied zwischen literalen zeichen und meta-zeichen in regulaeren ausdrucken erklaeren/als beispiel ergaenzen. -- seth Diskussion:Literal#c-Lustiger seth-2008-04-25T07:20:00.000Z-regexp11
Das Literal steht in der Programmierung als ausgegebener Text, Zahl oder Zeichen im IO Stream (Eingabestream wie Tastatur und Ausgebestream wie Monitor). z.B "Jon_Doe_01" oder '@' oder 'f'
Ein sehr oft verwendetes Beispiel für Programmieranfänger ist die Ausgabe "Hallo Welt" in Programmiersprachen. Wobei sich das "Hallo Welt" Literal lediglich auch die Ausgabe am Monitor beschränkt. cout << "Hallo Welt"; //ausgebebefehl mit Literal Hallo welt. Literale können sinngemäß genutzt werden und sind nicht Teil der von C++ genutzten Objekte, sofern sie regelkonform angelegt sind. (nicht signierter Beitrag von 77.24.122.60 (Diskussion) Diskussion:Literal#c-77.24.122.60-2010-12-08T10:53:00.000Z-regexp11)
assoziativer Verweis
[Quelltext bearbeiten]Wieso sollte ich mir Compilerbau durchlesen, um das hier zu verstehn? Das hilft mir irgendwie gar nicht weiter.
Was haben Literale damit zu tun - falls überhaupt irgendetwas, bitte in den Artikel schreiben. danke & grüße --WissensDürster Diskussion:Literal#c-WissensDürster-2009-05-27T13:49:00.000Z-assoziativer Verweis11
Logic Beispielformel
[Quelltext bearbeiten]Mir ist bei Beispielen aufgefallen, dass (A OR B) AND (NICHT A OR B) = B und hab es korrigiert. Oder bezieht es sich auf was anderes?
E.Bauer (nicht signierter Beitrag von 82.113.121.216 (Diskussion | Beiträge) Diskussion:Literal#c-82.113.121.216-2010-04-11T13:50:00.000Z-Logic Beispielformel11)
- Naja, da stand vorher schon ein Komma, es war eine Aufzählung, nicht ein ganzer logischer Ausdruck. Wie du hier oben ja zu stehn hast, "=B", hast du ja auch nicht ersetzt ;-) immer noch ein Komma, also es ging nur um die Abgrenzung (Zeichen oder Zeichenkette mit eindeutigem Wahrheitswert) also wurde ein Zeichen (ehemals A) und eine Zeichenkette angegeben. Ich sichte dein "B" einfach, es macht also keinen Unterschied, um Verwirrungen zu vermeiden könnte man vllt. "C" oder so hinschreiben. Grüße --WissensDürster Diskussion:Literal#c-WissensDürster-2010-04-11T14:55:00.000Z-82.113.121.216-2010-04-11T13:50:00.000Z11
Tautologie im Text ?
[Quelltext bearbeiten]aus dem Text: "In der Logik nennt man einen Satz Literal, wenn er entweder wahr (w, wahr, true) oder nicht wahr (f, falsch, false) ist."
Ist doch das Selbe wie "In der Logik nennt man jeden Satz Literal." -oder? --178.24.104.252 Diskussion:Literal#c-178.24.104.252-2010-05-24T19:21:00.000Z-Tautologie im Text ?11
- Ich stümper einfach mal vor mich hin: Er könnte ja auch aussagenlos sein. Also weder wahr noch falsch. Bsp: „Nachts ist es kälter als draußen.“ Demnach wäre Deine Definition nicht zutreffend. Eine Aussage von jemandem vom Fach zur Abklärung wäre aber vorzuziehen. --85.176.36.247 Diskussion:Literal#c-85.176.36.247-2011-01-15T20:56:00.000Z-178.24.104.252-2010-05-24T19:21:00.000Z11
Begriffsverwirrung
[Quelltext bearbeiten]Wenn man sich das englische Wikipedia anschaut, wird deutlich, was hier falsch ist. Nämlich, dass zwei verschiedene Dinge vermischt und nicht abgegrenzt werden. Siehe Literal_(computer_science) und Literal_(mathematical_logic). Die meisten Beiträge in dieser Diskussion haken an diesem Punkt. Es gibt im deutschen Wikipedia einige Artikel aus dem Bereich Logik, die zum Literal-Artikel verlinken: Z.B. Konjunktive_Normalform. Aber der Literal-Artikel wird dem nicht gerecht und verwirrt eher. Ich finde es aber nicht schlecht wenn, man beide Bedeutungen (bei Programmiersprachen und bei der Sprache der Aussagenlogik) in einem Artikel gegenüberstellt.
In der aktuellen Version des Artikel sind die Aussagen zu dem Aspekt Logik weitgehend falsch. Und bei Programmiersprachen sind logische Literale das selbe wie boolsche Literale und da gibt es nur zwei, nämlich true and false. --B-greift Diskussion:Literal#c-B-greift-2011-01-20T21:16:00.000Z-Begriffsverwirrung11
Literal Programmierung
[Quelltext bearbeiten]Mir sind Literale als Begriffe bekannt, die in Programmbefehlen des Quellcodes als Direktwert angegeben werden - gegenüber explizit definierter und mit symbolischen Namen anzusprechender Datenobjekte (die das Komplement bilden und Konstante oder Variable sein können). Beispiele:
BetragEuro = BetragDM : 1,95583 anstelle von: BetragEuro = BetragDM : U-Faktor Rechnungshinweis = "Zahlbar innerhalb von 14 Tagen" Rechnungshinweis = Text_Zahlbar
Diese Aspekte kommen in der Einleitung von 'Programmierung' nicht so deutlich zum Ausdruck. Auch nicht, dass man Zeichenliterale ("ABC"), damit sie der Compiler von symbolisch definierten Zeichen unterscheiden kann, syntaktisch z.B. in Anführungszeichen codieren muss. Numerische Literale (1 oder 3,14159) brauchen meist keine Anführungszeichen.
Außerdem scheint mir die Aussage zu rechtsseitig zweifelhaft: Zumindest in Cobol ist ein Befehl wie "IF '1' < FeldX' ohne Weiteres möglich. Insofern sollte auch dargestellt werden, dass manche Spezifika sprachenspezifisch sind.
Ebenfalls würde ich noch erwähnen, dass der Compiler Literale (aus Befehlen) intern genauso als Variable anlegt und diese im erzeugten Maschinencode genauso adressiert werden.
--VÖRBY 16:52, 27. Aug. 2011 (CEST), aktuell: --VÖRBY Diskussion:Literal#c-VÖRBY-2011-08-27T14:52:00.000Z-Literal Programmierung11
- Artikel heute entsprechend aktualisiert: --VÖRBY Diskussion:Literal#c-VÖRBY-2011-08-29T10:52:00.000Z-VÖRBY-2011-08-27T14:52:00.000Z11
- Zunehmend kommt mir der Abschnitt wie Herumgeeiere vor. Mit den neuen Ergänzungen gibt es jetzt drei nicht aufeinander abgestimmte Ansätze irgenwie der Beziehung und Abgrenzung zum Begriff "Konstante" näher zu kommen. Ich halte das für sehr verwirrend. Ich meine man sollte den Abschnitt folgendermaßen aufbauen: 1) Mit einigen Worten sagen was Literarale sind, und klarstellen, dass es Bestandteile der Sprache sind, die Werte bezeichnen. Also die Ziffernfolge ist das Litral und es bezeichnet eine Zahl. Den Begriff "Konstante" benötigt man dabei nicht. Was ist schon einen "konstante Zahl"? 2) Die Beispiele für verschiedene Datentypen. 3) Man kann Code-Beispiele bringen, wie Literale im Progammiersprachen genutzt werden (Zuweisungen (x:=5), arithmetische Ausdrücke (x+1) u.s.w.) 4) Vielleicht der Hinweis über den Programmierstil, ein Literal einem Bezeichner zuzuweisen. 5) Vielleicht der Hinweis, dass manche Programmiersprachen dazu speziell das Konzept der "Konstante" in Ergänzung zum Begriff "Variable" eingeführt haben. --B-greift Diskussion:Literal#c-B-greift-2011-08-29T14:01:00.000Z-VÖRBY-2011-08-29T10:52:00.000Z11
- Hallo, die Sache mit den Konstanten und die Beispiele habe ich weitgehend aus dem bisherigen Text übernommen plus weitere Aspekte (im Artikel!) eingebaut; siehe dort. Ist da was falsch? Was? Natürlich sind Literale 'eine Art Konstante', ich selbst hätte sie aber auch eher als 'dritte Form' gesehen. Der Artikel beschreibt den Begriff nur mit einem Kapitel, das andere gehört nicht zu 'Programmieren'. Deshalb halte ich weitere Unterkapitel - wenn nicht zusätzliche (wichtige) Aussagen dazu kommen - nicht für erforderlich und habe die Beispiele deshalb auch zu fett geändert. Natürlich sind Literale nicht nur "Ziffernfolgen". Und Codebeispiele kann man gerne ergänzen; in der Einleitung wird nur deutlich gemacht, was mit 'Direktwert' gemeint ist. Warum willst du unter 5) dann doch wieder die 'Konstante' in Spiel bringen? Wenn sie doch nichts mit L. zu tun hat?
- Grüße von --VÖRBY Diskussion:Literal#c-VÖRBY-2011-08-29T15:03:00.000Z-B-greift-2011-08-29T14:01:00.000Z11
- Sorry für meinen ersten Satz ("Herumgeeiere"). Ich meinte gar nicht so sehr Deine Änderungen, sodern mehr das Gesamtbild, den der Abschnitt jetzt hat. Meine Aufzählung war kein Vorschlag für Unterabschnitte. Der Umfamg des Abschnittes soll sich nicht vergrößern. Mir war nur wichtig die Reihenfolge der einselnen Aspekte vorzuschlagen und dabei die Dinge zu nennen, die schon drin sind. Nur einen Punkt habe ich herausgelassen: "Literale werden vom Compiler wie Konstanten und Variablen behandelt". Das halte ich für falsch. Der Parser erkennt ein Literal oder einen Berzeichner. Der Compiler oder Interpreter muss das ganz unterschiedlich handhaben. Einmal muss aus der Zeichenkette des Linerals ein Speicherinhalt konstruiert werden. Beim anderen Mal muss der Bezeichnername erkannt werden und als Speicheradresse umgesetzt werden. --B-greift Diskussion:Literal#c-B-greift-2011-08-29T19:54:00.000Z-VÖRBY-2011-08-29T15:03:00.000Z11
- "Literale sind Konstanten ähnlich ..." Es geht doch um Progrmmiersprachen, also Sprachen. "Pi" ist eine Konstante und "3.14" ist ein Literal. Was ist da ähnlich? Und natürlich sind Literale zur Laufzeit unveränderlich, weil sie ja Bestandteil des Quellcodes sind und der Lauf des Programms nicht den Quellcode verändert. --B-greift Diskussion:Literal#c-B-greift-2011-08-29T22:19:00.000Z-VÖRBY-2011-08-29T15:03:00.000Z11
- In einem Programm ist nur das eine Konstante, was der Programmierer als Konstante (explizit) deklariert. Codiert er stattdessen einen Direktwert im Quellcodebefehl, dann ist das ein Literal - egal ob das z.B. in der Mathematik (Pi) oder in der Steuergesetzgebung (19% MWSt-Satz) oder sonstwo eine Konstante ist oder nicht. Hab trotzdem den Text nochmal verändert: Litarale sind lediglich ein Komplement zu 'deklarierten Bezeichnern'. --VÖRBY Diskussion:Literal#c-VÖRBY-2011-08-30T18:52:00.000Z-B-greift-2011-08-29T22:19:00.000Z11
- Nein, nicht "...dann ist das ein Literal", sondern "... dann benutzt er ein Literal". Ich habe den Eindruck, dass es Dir nicht klar ist, dass das Literal nur ein Aspekt der Sprache ist. Was bedeutetet z.B. im ersten Satz "Literal ... anstelle symbolisch deklarierter Bezeichner". Deklariere mal einen Bezeichner (Konstante) ohne ein Literal zu verwenden (Pi=3.14). Wieso also "anstelle". Das Programmierkonzept "Konstanten" kann man erst einführen, wenn es "Literale" schon gibt. Um den Leser nicht zu verwirren, nochmal mein Appell, die von mir vorgeschlagen Reihenfolgen zu berücksichtigen. --B-greift Diskussion:Literal#c-B-greift-2011-08-30T19:44:00.000Z-VÖRBY-2011-08-30T18:52:00.000Z11
- In einem Programm ist nur das eine Konstante, was der Programmierer als Konstante (explizit) deklariert. Codiert er stattdessen einen Direktwert im Quellcodebefehl, dann ist das ein Literal - egal ob das z.B. in der Mathematik (Pi) oder in der Steuergesetzgebung (19% MWSt-Satz) oder sonstwo eine Konstante ist oder nicht. Hab trotzdem den Text nochmal verändert: Litarale sind lediglich ein Komplement zu 'deklarierten Bezeichnern'. --VÖRBY Diskussion:Literal#c-VÖRBY-2011-08-30T18:52:00.000Z-B-greift-2011-08-29T22:19:00.000Z11
- Hallo, die Sache mit den Konstanten und die Beispiele habe ich weitgehend aus dem bisherigen Text übernommen plus weitere Aspekte (im Artikel!) eingebaut; siehe dort. Ist da was falsch? Was? Natürlich sind Literale 'eine Art Konstante', ich selbst hätte sie aber auch eher als 'dritte Form' gesehen. Der Artikel beschreibt den Begriff nur mit einem Kapitel, das andere gehört nicht zu 'Programmieren'. Deshalb halte ich weitere Unterkapitel - wenn nicht zusätzliche (wichtige) Aussagen dazu kommen - nicht für erforderlich und habe die Beispiele deshalb auch zu fett geändert. Natürlich sind Literale nicht nur "Ziffernfolgen". Und Codebeispiele kann man gerne ergänzen; in der Einleitung wird nur deutlich gemacht, was mit 'Direktwert' gemeint ist. Warum willst du unter 5) dann doch wieder die 'Konstante' in Spiel bringen? Wenn sie doch nichts mit L. zu tun hat?
Das sieht zunächst mal wie Haarspalterei aus ("ist oder benutzt"). Klar ist das ein Aspekt der Sprache, was sonst? Allerdings sehe ich einen Unterschied: Nach meiner Beschreibung / Auffassung gibt es das Literal nur in 'Befehlen' (move 1 to xxx ...). So kenne ich das - und nur so machen auch die z.T. schon alten Texte einen Sinn: Eine "Art Konstante"; literale Konstante; unbenannte Konstante ...). Nach deiner Auffassung wäre alles ein Literal, das man in Anführungszeichen schreibt, zum Beispiel auch den Inhalt von Konstanten. Wäre dann die Angabe des Autors im Sourcecode auch ein 'Literal'? Das müsste also geklärt werden. Vielleicht gibt es eine engere und eine weiter gefasste Definition? Ich werde mal googeln.--VÖRBY Diskussion:Literal#c-VÖRBY-2011-08-30T20:45:00.000Z-Literal Programmierung11
- Ja, in gewisser Weise alles was man in Anführungszeichen schreibt, ausgenommen Ausnahmen wie z.B numerische Literale, die ohne Anführungszeichen auskommen. Genau definiert das die Syntax-Definition einer Sprache, was als ein Literal zu sehen ist. Von mir aus auch der Autor. Ich kenne aber keine Sprache, wo die Nennung des Autors ein Bestandteil der Sprache ist. Ich weiss nicht was Du mit "Inhalten von Konstanten" meinst. In der Sprache hat man vielleicht eine "Konstantenvereinbarung" und diese beinhaltet eine "Zuweisung", und die Zuweisung hat eine "linke Seite" und eine "rechte Seite". Die linke Seite ist ein Bezeichner und die rechte Seite ist i.A. ein Literal ("xxx=1" oder auch "move 1 to xxx") Hast Du ja auch gesagt: so kennst Du es. Also worüber streiten wir eigentlich? Ich versuche das zu analysieren. Wir haben hier zwei Konzepte von Programmiersprachen : nämlich 1) das Konzept des Literals und 2) das Konzept der benamten (oder benannten) Konstanten. Deiner Meinung nach erklärt sich 1) durch Abgrenzung zu 2). Meine Meinung ist, 1) sollte man ohne 2) erklären, und 2) ist ein Add-On, was man erst einführt, wenn 1) klar ist. --B-greift Diskussion:Literal#c-B-greift-2011-08-30T22:42:00.000Z-VÖRBY-2011-08-30T20:45:00.000Z11
- @VÖRBI: Betrachte doch mal die Verwendung des Worts "Literal" in Aktion:
- Das macht alles einen sehr syntaktischen Eindruck, der mit Semantik und der Repräsentation des laufenden Programmes und Verwendung in anderen Sprachkonstrukten wie benannte Konstanten zunächst einmal gar nichts zu tun hat.
- Auch die Argumentation mit "Befehlen" ist ein wenig seltsam. In Haskell z.B. gibt's Literale, aber weder in der Quellsprache, noch im Semantikraum gibt es "Befehle". (Natürlich erzeugen Compiler trotzdem "Befehle", um auf heute vorhandener Hardware auch mal was ausrechnen zu lassen, aber das ist ein Implementationsdetail - und was mit den Literalen passiert, weiß der Wind. Natürlich ist es Compilern gestattet, bedeutungserhaltende Transformationen vorzunehmen.) --Daniel5Ko Diskussion:Literal#c-Daniel5Ko-2011-08-30T23:56:00.000Z-B-greift-2011-08-30T22:42:00.000Z11
Ganz klar, wir haben eine unterschiedliche Meinung über den Begriff Literal. Gebe zu, dass kommt auch daher, weil wir keine 'Quellen' zitieren. Wie schon gesagt, danach werde ich noch suchen. Doch direkt als vorläufige Antworten:
- B-greift: Ja, unsere Diskrepanz besteht genau darin: Ich meine, dass L. nur in 'Befehlen ...' vorkommen, du hast eine sehr viel weitere Sichtweise;
- @Daniel5Ko: Ob man die Konstrukte 'Befehl' oder sonstwie nennen mag, scheint mir zweitrangig. Jedenfalls gibt es (zumindest in nicht-deklarativen Programmiersprachen) Konstrukte, durch die 'etwas getan' wird (Funktion?) und die sich normalerweise (bzw. als Komplement zu Literalen) auf Variable etc. beziehen.
- Erläuterungen zur Wirkung von L. im Maschinenprogramm halte ich schon für zweckmäßig - für Leute, die sich über den Unterschied zwischen Quellcode und dem was der Rechnet wirklich tut, interessieren.
- Lt. ecma: "A literal (§14.5.1) is a source code representation of a value." Das ließe beide Interpretationen (Befehle, alles was Programmcode ist) zu; jedenfalls zeigen alle dort genannten Beispiele 'Befehle' wie Zuweisungen etc. Bei haskell2010 finde ich (auf die Schnelle) i.W. nur syntaktische Festlegungen, aber (noch) keine Aussagen darüber, wo und wie diese Konstrukte verwendet werden.
- Auch denke ich, dass man in WP Begriffe allgemein erklären sollte und nicht als Ersatz für Syntaxdefinitionen in (bestimmten) Programmierkonzepten und -Sprachen.
Lasst uns das als über Quellen klären. Es würde mich nicht wundern, wenn dieser Terminus an unterschiedlichen Stellen mit unterschiedlichen Begriffen assoziiert wird. Wenn das zutrifft, sollte dann in WP:Literal auch als Unterschied beschrieben werden. Bis demnächst grüße ich euch: --VÖRBY Diskussion:Literal#c-VÖRBY-2011-08-31T08:32:00.000Z-Literal Programmierung11
- Selbst wenn ein Programmierer unerlaubter Weise ein Literal an einer falschen Stelle verwendet, bleibt es für mich ein Literal. Z.B. Eine Zuweisung 315:="Quatsch" . Wie könnte die Fehlermeldung des des Compilers aussehen?(oder die Zurechtweisung des Programierkursdozenten) Mein Vorschlag: "Die Linke Seite einer Zuweisung darf kein Literal sein." --B-greift Diskussion:Literal#c-B-greift-2011-08-31T09:07:00.000Z-VÖRBY-2011-08-31T08:32:00.000Z11
- Hallo, natürlich wäre dein o.g. Befehl Quatsch - und jeder Compiler wird ihn auch entsprechend kommentieren. Insofern gilt die Aussage 'nur rechtsseitig' nur für Zuweisungen und nur für solche Sprachen, bei denen man in dieser Form codiert. Es gibt aber auch andere Befehle, bei denen es ein Links und Rechts gibt - und auch Sprachen, bei denen man anders zuweist (Move 1 to Feld). Ich passe das entsprechend an.
- Zu Cobol habe ich inzwischen recherchiert und meine Sichtweise (L. nur in Befehlen) bestätigt gefunden. Andere Sprachen definieren L. wohl anders. Ich werde das im Artikel jetzt entsprechend differenziert formulieren - mit Quellenangabe. Vielleicht kann jemand von euch beiden den Text gem. anderer Bedeutungen noch ergänzen.
- Man sieht mal wieder, dass Autoren (auch ich) oft nur aus ihrer Erfahrung texten, dass es aber durchaus auch andere 'Realitäten' gibt. Danke für die Hinweise. Gruß von--VÖRBY Diskussion:Literal#c-VÖRBY-2011-08-31T10:33:00.000Z-B-greift-2011-08-31T09:07:00.000Z11
- Ich verstehe nicht, was bei Cobol anders sein soll. Und ich verstehe auch nicht, auf was VÖRBY eigentlich hinaus will. Die Diskussion ist aber aktuell eher kontraproduktiv, da der Artikel immer schlechter wird. Zunehmend sorgt er eher für Verwirrung, statt zur Klärung. Trotzdem versuche ich nochmal etwas klarzustellen. Was genau ein Literal ist, wird in der Grammatik einer Sprache definiert. Daraus ergibt sich 1) wie Literale gebildet werden können, und 2) wie Literale im Gesamtprogamm verwendet werden dürfen. Wenn ich dann von einem Literal spreche, habe ich nur einen Programmfitzel vor Augen und nicht ein ganzes Pragramm. Ich kann dann entscheiden, ob es wirklich ein Literal ist oder nicht. Ob der Programmfitzel im Gesamtprogamm sinnvoll und richtig eingesetzt ist, ist nicht relevant für die Frage, ob es ein Literal ist. Das nennt man "kontextfrei". --B-greift (Diskussion:Literal#c-B-greift-2011-08-31T21:56:00.000Z-VÖRBY-2011-08-31T10:33:00.000Z11, Datum/Uhrzeit nachträglich eingefügt, siehe Hilfe:Signatur)
- Und ich verstehe nicht, was die Aufforderung nach Ergänzung soll. Oder Änderungskommentare wie "Sprachspezifische Unterschiede". Eigentlich müsste man doch nach dem Schnitt über alles mögliche suchen. Und da bleibt halt nicht viel mehr übrig als "ja, Syntax halt; genauer vielleicht: Blätter, welche keine Variablenreferenzen o.ä. sind, in abstrakten Syntaxbäumen für Ausdrücke"... --Daniel5Ko Diskussion:Literal#c-Daniel5Ko-2011-09-01T00:51:00.000Z-B-greift-2011-08-31T21:56:00.000Z11
- Ich verstehe nicht, was bei Cobol anders sein soll. Und ich verstehe auch nicht, auf was VÖRBY eigentlich hinaus will. Die Diskussion ist aber aktuell eher kontraproduktiv, da der Artikel immer schlechter wird. Zunehmend sorgt er eher für Verwirrung, statt zur Klärung. Trotzdem versuche ich nochmal etwas klarzustellen. Was genau ein Literal ist, wird in der Grammatik einer Sprache definiert. Daraus ergibt sich 1) wie Literale gebildet werden können, und 2) wie Literale im Gesamtprogamm verwendet werden dürfen. Wenn ich dann von einem Literal spreche, habe ich nur einen Programmfitzel vor Augen und nicht ein ganzes Pragramm. Ich kann dann entscheiden, ob es wirklich ein Literal ist oder nicht. Ob der Programmfitzel im Gesamtprogamm sinnvoll und richtig eingesetzt ist, ist nicht relevant für die Frage, ob es ein Literal ist. Das nennt man "kontextfrei". --B-greift (Diskussion:Literal#c-B-greift-2011-08-31T21:56:00.000Z-VÖRBY-2011-08-31T10:33:00.000Z11, Datum/Uhrzeit nachträglich eingefügt, siehe Hilfe:Signatur)
Hallo zusammen, lasst mich zusammenfassen:
- Zu 'Cobolunterschieden': Ja, Cobol kennt unter dem Begriff 'Literal', unabhängig von der syntaktischen Bedeutung von 'Literal', etwas Spezielleres, nämlich die Verwendung von Direktwerten in Cobol-Befehlen.
- Zu 'ich kann dann entscheiden ...': Das verstehe ich nicht, scheint mir aber auch nicht mehr wichtig.
- Zu 'Ergänzung': Ich meinte nur, falls es da was zu ergänzen gibt.
- Zu 'Sprachspezifische Unterschiede': Das oben zu Cobol Gesagte muss nicht als eigenes Teilkapitel behandelt werden; deshalb entferne ich dieses wieder und belasse lediglich den Hinweis auf die spezielle Bedeutung in Cobol im Hauptabschnitt.
- Zu 'nach dem Schnitt ...': Verstehe ich auch nicht. Sorry.
Ich hoffe, wir sind jetzt 'beieinander': Ich selbst hatte tatsächlich 'Literal' zunächst nur nach der Cobol-Bedeutung interpretiert, sehe aber jetzt, dass L. in erster Linie die Form festlegt, wie Direktwerte im Code zu notieren sind. Ich grüße euch: --VÖRBY Diskussion:Literal#c-VÖRBY-2011-09-01T10:36:00.000Z-Literal Programmierung11
- Noch nicht ganz 'beieinander', aber wir kommen voran. Es fehlt noch VÖRBY's Einsicht, dass Cobol kein Extrafall ist. Die gennanten Referenzen belegen das. 1) Direktwerte in Cobolbefehlen: Ja, genau das sind Literale. Man schreibt einfach die Werte in den Source-Code. Die Sprache muss nur die Schreibweiweise festlegen. 2) Wenn die Schreibweise definiert ist, kann man entscheiden ob ein Programm-Detail, z.B. 3.785-E03 ein Literal ist. 3) Der 'Schnitt' ist der Durchschnitt: das, was man für alle Programmierprachen gemeinsam sagen kann. Unterschiede herauszuarbeiten halte ich nicht für notwendig. Natürlich sind Beispiele immer nur Beispiele und sie gelten nicht genauso überall. 4) Zu den Änderungen im Artikel. Der Satz "... eine Zeichenfolge, deren Wert durch die Zeichen selbst repräsentiert wird und die [direkt in Befehlen] der PROCEDURE DIVISION verwendet werden kann." ist so etwas Gemeinsames. Abgesehen davon, dass "PROCEDURE DIVISION" ein Cobol-Begriff ist. 5) Auch die "figurativen Konstanten" gibt es in vielen Sprachen: true und false ist z.B. so etwas. --B-greift Diskussion:Literal#c-B-greift-2011-09-01T19:04:00.000Z-VÖRBY-2011-09-01T10:36:00.000Z11
- Hallo, ich denke wir können das so lösen, dass wir von 'einigen P-Sprachen, z.B. Cobol' sprechen. Noch zu deinen Antworten: 1) Mir ging es darum, dass Cobol als 'Literal' NUR diese Verwendung im Code betrachtet. 2) verstehe ich nach wie vor nicht: wenn man '3.785-E03' schreibt, braucht man doch nicht mehr zu entscheiden, ob das ein L. ist; das IST ein Literal. 3) 4) 5) ok, wir verallgemeinern und nennen ein Beispiel. Grüße von --VÖRBY Diskussion:Literal#c-VÖRBY-2011-09-02T06:39:00.000Z-B-greift-2011-09-01T19:04:00.000Z11
- Dann lese doch mal das IBM-Manual. "Language Reference", "Data Division", "... - data description entry", "VALUE clause", "Format 1". --B-greift Diskussion:Literal#c-B-greift-2011-09-02T08:06:00.000Z-VÖRBY-2011-09-02T06:39:00.000Z11
- OK, ich hatte das zwar bisher gesucht, aber nur den 'Prozedurbezug' gefunden. Du hast also Recht; dieser Aspekt ist keine Besonderheit. Ich nehme also den ganzen Teilabsatz wieder raus. Sorry für den 'Aufstand', aber ich war echt dieser Meinung und fand mich mit der genannten Referenz bestätigt. Grüße von --VÖRBY Diskussion:Literal#c-VÖRBY-2011-09-02T08:26:00.000Z-B-greift-2011-09-02T08:06:00.000Z11
- Dann lese doch mal das IBM-Manual. "Language Reference", "Data Division", "... - data description entry", "VALUE clause", "Format 1". --B-greift Diskussion:Literal#c-B-greift-2011-09-02T08:06:00.000Z-VÖRBY-2011-09-02T06:39:00.000Z11
- Hallo, ich denke wir können das so lösen, dass wir von 'einigen P-Sprachen, z.B. Cobol' sprechen. Noch zu deinen Antworten: 1) Mir ging es darum, dass Cobol als 'Literal' NUR diese Verwendung im Code betrachtet. 2) verstehe ich nach wie vor nicht: wenn man '3.785-E03' schreibt, braucht man doch nicht mehr zu entscheiden, ob das ein L. ist; das IST ein Literal. 3) 4) 5) ok, wir verallgemeinern und nennen ein Beispiel. Grüße von --VÖRBY Diskussion:Literal#c-VÖRBY-2011-09-02T06:39:00.000Z-B-greift-2011-09-01T19:04:00.000Z11
Herkunft des Wortes Literal
[Quelltext bearbeiten]Klar heißt littera "Buchstabe", und das hat mit Literal zu tun, aber direkt dürfte es doch aus dem Englischen kommen, wo literal "wörtlich" oder "buchstäblich" heißt. Ich bin dafür, die Herkunftsangabe entsprechend zu ändern. -- 141.26.64.5 18:07, 31. Aug. 2011 (CEST) nachsigniert: UKoch Diskussion:Literal#c-141.26.64.5-2011-08-31T16:07:00.000Z-Herkunft des Wortes Literal11
- Klingt logisch! Wortbedeutungen verlaufen ja etymologisch häufig über mehrere Stufen - und das kann man der Klarheit wegen durchaus auch so darstellen. Änderst du das entsprechend? --VÖRBY Diskussion:Literal#c-VÖRBY-2011-08-31T17:31:00.000Z-141.26.64.5-2011-08-31T16:07:00.000Z11
- Ich denke, die letzte Stufe (vom Englischen ins Deutsche) reicht. Soll ich's dann entsprechend ändern? -- UKoch Diskussion:Literal#c-UKoch-2011-08-31T23:05:00.000Z-VÖRBY-2011-08-31T17:31:00.000Z11
- Ich würde es so schreiben: „Literal (aus Englisch literal = "buchstäblich/wörtlich", ursprünglich aus lat. littera = "Buchstabe") ist ...“ - wenn es denn so ist, d.h. wenn Deutsch tatsächlich auf Englisch beruht und nicht beide nur auf den selben lat. Ursprung zurück gehen.
- Grüße von --VÖRBY 10:12, 1. Sep. 2011 (CEST), aktuell: --VÖRBY Diskussion:Literal#c-VÖRBY-2011-09-01T08:12:00.000Z-UKoch-2011-08-31T23:05:00.000Z11
Beispiele
[Quelltext bearbeiten]Was Literale sind, legt die Lexik einer Programmiersprache fest, nicht die Syntax. Darum ist -12 (zumindest in Pascal) kein Literal, sondern die Anwendung des Operators - auf das Literal 12. Wenn niemand meckert, korrigiere ich das "demnächst". -- 141.26.64.5 18:12, 31. Aug. 2011 (CEST) nachsigniert: UKoch Diskussion:Literal#c-141.26.64.5-2011-08-31T16:12:00.000Z-Beispiele11
- Wenn als Literal '-12' angegeben ist, dann ist das m.E. einfach ein numerisches Literal; dessen Wertebereich kann ja auch negativ sein, weshalb man das auch entsprechend (mit Minus) deklarieren können muss. Selbst wenn nach deiner Meinung zwei Aspekte verknüpft sind, nämlich der Wert 12 als Literal und Vorzeichenumkehr, ist beides zusammen m.E. trotzdem ein Literal - weil das Ergebnis ja wohl irgendwie zugewiesen oder verwendet wird, ohne dass auf einen deklarierten Bezeichner Bezug genommen wird. Also: Bitte nicht ändern. --VÖRBY Diskussion:Literal#c-VÖRBY-2011-08-31T17:28:00.000Z-141.26.64.5-2011-08-31T16:12:00.000Z11
- Die Aufspaltung in lexikalische und dann kontextfreie Syntax wird zwar oft gemacht, ist aber eigentlich nicht zwingend.
- Die Spezifikationen, die das tun, definieren oft sowohl eine Tokenklasse "Literal" (als Teil der Lexik) als auch bestimmte Teilausdrücke (als Teil der kontextfreien Syntax) namens (irgendwas)-"Literal".
- Am Java-Beispiel des "class literal"s (Identifier '.' 'class'), (dem ich durchaus zugestehe, 'rechtmäßigerweise' Literal zu heißen :) ) das aus mehreren Tokens besteht, von denen kein einziges ein Literal im von der Lexik definierten Sinn ist, sieht man recht deutlich, dass man sich das ganze nicht so einfach machen kann. --Daniel5Ko Diskussion:Literal#c-Daniel5Ko-2011-08-31T19:41:00.000Z-141.26.64.5-2011-08-31T16:12:00.000Z11
- Hm, ich wälze mal ein wenig Literatur und antworte Euch dann. Das Beispiel mit den Java-Class-Literals sieht ganz überzeugend aus. -- UKoch Diskussion:Literal#c-UKoch-2011-08-31T23:04:00.000Z-Daniel5Ko-2011-08-31T19:41:00.000Z11
Ich denke, dass man hier in der Enzyklopädie nicht derart tief einsteigen sollte: Syntax, kontextfrei, Lexik, Tokenklasse, class literal, Identifier ... sind m.E. hier (klar ist das hier nur die Diskussion) fehl am Platz, besonders wenn das nur für bestimmte Sprachen gilt. Jemand, der einfach wissen will, was ein Literal in der Programmierung ist, erwartet diese Details nicht. Und Spezialisten müssen sich in sprachspezifischen Unterlagen informieren.
Nochmal: 'Minus 12' muss unzweifelhaft als numerisches Literal gelten können, evtl. weitere technische Diskussionen dazu helfen dem (einfachen) WP-Leser kaum.--VÖRBY Diskussion:Literal#c-VÖRBY-2011-09-01T08:24:00.000Z-Beispiele11
- OK, lassen wir's so, wie's ist. -- UKoch Diskussion:Literal#c-UKoch-2011-11-21T18:51:00.000Z-VÖRBY-2011-09-01T08:24:00.000Z11
Link defekt
[Quelltext bearbeiten]Der Link unter "Einzelnachweise", "Allgemeine Cobol-Programmstruktur (PDF )" ist defekt. Wie melde ich das?
Defekter Weblink
[Quelltext bearbeiten]Der folgende Weblink wurde von einem Bot („GiftBot“) als nicht erreichbar erkannt. |
---|
|
- http://www.mitp.de/imperia/md/content/vmi/0945/0945_kap011.pdf
- Artikel mit gleicher URL: Array (Datentyp) (aktuell)
– GiftBot (Diskussion) Diskussion:Literal#c-GiftBot-2015-12-01T18:08:00.000Z-Defekter Weblink11