Was haben alle Programmiersprachen gemeinsam?
Guten Abend.
Wir haben die oben stehende Frage bekommen und vier Antwortmöglichkeiten, von denen mehrere Richtig sein können:
1. Sie sind nach äußerst strengen Regeln aufgebaut. (Da bin ich der Meinung: ja)
2. Ihre Programme bestehen hauptsächlich aus Definitionen von Klassen. (Da bin ich der Meinung: nein, z.B. funktioniert PHP ohne Klassen)
3. Jedes ihrer Sprachelemente muss eine genau definierte Bedeutung haben. (Hier habe ich keine Ahnung, was das bedeuten soll)
4. Der Programmierer beschreibt, welche Bedingungen die Ausgabe des Programms erfüllen muss. Wie die Ergebnisse konkret erzeugt werden, wird zu einem späteren Zeitpunkt festgelegt. (Da bin ich der Meinung: ja, z.B. bei Java println wobei das was ausgegeben werden soll auch später erzeugt werden kann)
Ich würde nun gerne wissen, ob meine Antworten/Vermutungen richtig sind, weil ich mich nicht so gut damit auskenne. Das wäre nett:)
5 Antworten
- Ja, es gibt eine formale Grammatik, insofern ist das absolut zutreffend.
- Definitiv nicht, weder bei imperativen noch funktionalen Sprachen ist das der Fall.
- Die Frage ist hier, ob eine "genau eine" bedeuten soll. Wenn ich dies als: Jedes Sprachelement hat eine eindeutige kontextuelle Semantik verstehe, dann ist die Antwort ja. Sonst nein, denn da möchte ich nur auf Operatoren hinweisen, die sehr unterschiedliche Bedeutungen haben können, je nachdem worauf sie Anwendung finden.
- Hmm, das ist IMHO sehr mißverständlich. Nach meiner Auffasung legt ein Algorithmus per Definition fest, wie er seine Ausgabe erzeugt, wie diese letztlich aussieht, kann von Argumenten abhängen, muß aber nicht. Ich kann hier nicht wirklich herauslesen, worauf die Frage eigentlich abzielen möchte.
Jedes ihrer Sprachelemente muss eine genau definierte Bedeutung haben.
Das trifft nicht zu. Bei C++ beispielsweise hat das Schlüsselwort "const" bei der Membermethode einer Klasse je nach Kontext eine unterschiedliche Bedeutung. Lautet der Funktionskopf
const int* func()
dann handelt es sich um eine Funktion, die einen Pointer auf einen int zurückgibt, dessen Wert über diesen Pointer nicht geändert werden darf. Lautet der Funktionskopf aber
int* func() const
bedeutet das, dass die Funktion die Instanz der Klasse, auf der sie aufgerufen wird, nicht verändert. Sie gibt einen Pointer auf einen int zurück, dessen Wert über diesen Pointer geändert werden darf.
Ich würde hier also mit "Nein" stimmen. Andererseits kommt das darauf an, was genau unter "Sprachelement" zu verstehen sein soll.
Ansonsten würde ich deiner Einschätzung zustimmen. Auch wenn die Fragen teilweise absolut schwammig und uneindeutig gestellt sind.
Nun, natürlich sind sie eindeutig, sonst würde es sich dabei nicht um ein Sprachelement einer Programmiersprache handeln. Aber es geht ja nicht darum, dass diese nicht eindeutig wären. Es geht darum, dass dieses eine Sprachelement, dieses eine Schlüsselwort, zwei mehrere Bedeutungen hat, nicht nur eine einzige. Aber wie gesagt, die Antwort auf die Frage ist unterschiedlich, je nach dem, was man unter einem Sprachelement versteht.
sonst würde es sich dabei nicht um ein Sprachelement einer Programmiersprache handeln.
Eben. Das unterscheidet Programmiersprachen von natürlichen (menschlichen) Sprachen, die in vielen Fällen erheblichen Interpretationsspielraum zulassen. Wie zum Beispiel die in der Aufgabe angebotenen Antworten ;-)
Ja, das mit der Formulierung der Frage ist auch mein Problem. Aber vielen Dank
3 ist auch ja. Sonst weiß der pc nicht was er tun soll.
4 versteh ich nicht die aussage
Bei 4 sicher nein. Mit Hilfe einer Programmiersprache wird dem Computer "erklärt", wie er ein Problem zu lösen hat.
Man gibt in Programmiersprachen nicht die Antwort vor ("42") und überlässt dem Computer herauszufinden, wie er darauf kommt.
Ich habe mich noch einmal erkundigt:
Das mit 42 vorgeben und der Computer findet heraus, wie er darauf gekommen ist, ist deklarativ. Da wir aber Java als Oberthema haben, wird die Antwort 4 wohl falsch sein. Deswegen vielen Dank🙃
Man gibt in Programmiersprachen nicht die Antwort vor ("42") und überlässt dem Computer herauszufinden, wie er darauf kommt.
Machine learning würde gerne ein Wort mit dir reden.
Machine learning ist ein Verfahren, keine Programmiersprache. Wie das Machine learning vom Computer umgesetzt wird, ist durch eine Programmiersprache festgelegt.
Hast natürlich eigentlich recht, nur finde ich deine Wortwahl „das macht man in Programmiersprachen nicht“ nicht ganz so glücklich formuliert. Denn ML mach ich ja auch in einer Programmiersprache.
1> Sehr streng! JA!
2 > PHP ist keine Programmiersprache ;-)
3 > Nicht zwingend! Das ist Definitionssache!
4> JA!
Dir wurde jetzt schon oft genug erklärt, das PHP durchaus eine Programmiersprache ist. Dennoch verbreitest du immer noch diesen Unsinn. Was soll das?
php ist eine script-sprache mit der man programmieren kann. das macht es aber immernoch nicht zu einer programmiersprache!
wikipedia sagt dazu: "PHP ist eine Skriptsprache"... google it! ;-)
ne, warte! link zu wikipedia: https://de.wikipedia.org/wiki/PHP
Nein, wir machen das mal so, wie ich es dir schon geschrieben habe. Du suchst jetzt einmal den Artikel auf Wikipedia heraus und liest ihn dir ganz sorgfältig durch. Danach gehst du auf deine Profilseite und suchst die Kommentare heraus, die man dir schon etliche Male zu dem Thema geschrieben hat. Die liest du dir ebenso sorgfältig durch. Wenn du dann noch Fragen hast, die noch nicht ausreichend erklärt wurden, kannst du die gern stellen. So lange hörst du aber auf, deine Falschaussagen an Anfänger / Fragesteller weiterzugeben.
Dein PHP-Experiment bekommst du allein hin.
Wir reden anscheinend aneinander vorbei! ICH denke mir die Sachen doch nicht aus! Ich bin seit 1993 online und habe 1997 eine 3-hährige-IHK-Ausbildung in dem Bereich gemacht. Nun arbeite ich seit 20 Jahren in dem Bereich ... da ich ziemlich erfolgreich bin und mittlerweile zwei sehr gutlaufende Firmen habe, zweifel ich wenig an meiner Kompetenz! Und wie ich bereits erwähnte: Die Wikipedia-Einträge habe ich mitgeschrieben!
Ich kenne deine Antworten hier auf der Plattform und das genügt für eine Wertung. Das ist das einzige Entscheidende. Da ist es egal, wie viele gutlaufende Firmen du haben möchtest. Wenn du die Wikipedia-Artikel mitgeschrieben hättest, würdest du nicht das behaupten, was du in deiner Antwort oben behauptest.
So ein Stuss.
Eine Blume ist auch eine Pflanze, aber nicht jede Pflanze eine Blume.
Beschäftige dich mal bitte mit Mengenlehre, und dem, was man als "echte Teilmenge" bezeichnet.
Die Aussage, dass PHP keine Programmiersprache, sondern eine Skriptsprache sei, ist genauso falsch, als wenn du sagst, Menschenaffen sind keine Lebewesen, sondern Säugetiere.
Merkst du was?
Naja, im Kontext sind die Sprachelemente schon eindeutig. In dem Sinne, dass stets dasselbe passiert. In deinem Beispiel steht das const ja in zwei verschiedenen, aber jeweils eindeutigen Zusammenhängen. So wie das & Zeichen je nach Zusammenhang eine Adresse oder ein logisches UND oder ein Bit-Operator sein kann, vom Operator-Overloading mal ganz abgesehen.