Was ist Pseudocode?

19

Ich habe in letzter Zeit viele Erwähnungen von Pseudocode auf dieser und anderen Websites gesehen . Aber ich verstehe es nicht:

  • Was ist Pseudocode? In dem folgenden Wikipedia-Artikel heißt es beispielsweise: "Es verwendet die strukturellen Konventionen einer Programmiersprache, ist jedoch eher für das menschliche Lesen als für das maschinelle Lesen gedacht." Bedeutet das, dass es eigentlich nicht zum Erstellen von Programmen verwendet wird?

  • Warum wird es verwendet?

  • Wie wird es benutzt?
  • Wird es als Programmiersprache angesehen? (Siehe das obige Wikipedia-Zitat)
  • Ist es allgemein bekannt / verwendet?

Ich weiß ehrlich gesagt nicht, wo ich damit anfangen soll. Ich habe es gegoogelt und den Wikipedia-Artikel zu diesem Thema gesehen , aber ich verstehe immer noch nicht ganz, was es ist.

Dynamisch
quelle
7
Bitte geben Sie konkrete Zitate und Fragen aus dem Wikipedia-Artikel an. Alle Ihre Fragen werden dort beantwortet. Wenn Sie die Wörter oder Ausdrücke nicht verstehen, geben Sie bitte ein bestimmtes Wort oder einen bestimmten Ausdruck in Ihrer Frage an, damit wir ihn erklären können. Es ist schwierig zu wissen, was Sie in diesem Artikel verwirrend fanden. Anstatt diesen Artikel hier zu wiederholen, wäre es hilfreich, wenn Sie auf die spezifischen Dinge verweisen könnten, die Sie verwirrten.
S.Lott
@ S.Lott: Fertig
Dynamisch
20
while (you.doNotUnderstand(pseudocode)) { q = you.askQuestion(); a = we.answer(q); you.digestAnswer(a) }
Joachim Sauer
3
if (question.IsAnswered) then you.UnderstandPseudoCode <- true
E-MEE
1
Es ist ein Mittelweg zwischen natürlicher Sprache und Programmiersprache - es ist formeller als gesprochene Sprache, aber weniger formell als eine echte Programmiersprache.
Ingo

Antworten:

19

Pseudocode ist, wie der Name schon sagt, kein echter Code, sondern sieht aus wie Code. Es hilft den Menschen, eine Problemdomäne oder -lösung besser zu verstehen, ohne das gesamte Gepäck hinzufügen zu müssen, das für die Verwendung einer echten Sprache erforderlich ist.

Kurz gesagt: Es wird nur zu Illustrationszwecken verwendet.

Pseudocode und Programmierung
Es gibt keine Definition oder feste Regel für Pseudocode. Sie kann jedes Mal anders sein. Es ist keine (echte) Programmiersprache, und niemand wird sie für eine halten. Es kann nicht kompiliert oder als echte Programmiersprache verwendet werden. Wenn Sie dies tun könnten, wäre es kein Pseudocode mehr. Pseudocode muss nicht deterministisch sein (eine Notwendigkeit für die Kompilierung von Computern), sondern muss vom Menschen verstanden werden. Um Pseudocode zu verwenden, müssen Sie ihn in Ihre bevorzugte Programmiersprache konvertieren. Dieser Umwandlungsprozess kann jedes Mal anders sein und es können keine Regeln dafür angegeben werden, da Pseudocode wiederum wie freie Rede ist: Er kann jede Form annehmen.

Verwendung
Diese Methode wird häufig verwendet, insbesondere in der Entwurfsphase von Projekten, um einen bestimmten Ansatz für ein Problem zu verstehen. Es wird auch häufig im Algorithmus-Design verwendet oder wenn Lehrer etwas an die Tafel zeichnen. In all diesen Fällen ist es nicht notwendig, den Code zu kompilieren, Sie möchten nur das Problem / die Lösung verstehen.

Arten von Pseudocodes
Pseudocodes können, müssen aber nicht von einer bestimmten Art sein, dh Sie können einen stapelbasierten Pseudocode zur Veranschaulichung von MSIL verwenden, Sie können einen zwingenden Pseudocode zur Veranschaulichung von Java, C #, C ++, Python und anderen verwenden kann einen funktionalen Pseudocode haben, um F #, Haskell, SQL usw. zu veranschaulichen.

Beispiele
Von oben, aber alles geht, denn Pseudocode kann vor Ort erfunden werden:

XML-Pseudocode mit einer Kopf-Körper-Struktur, die mehrere p-Elemente zulässt:

<head ...
   <title ...
</
<body ...>
   (<p>...)+
</

Imperativer Pseudocode, der das Diamantenproblem in Sprachen zeigt, die Mehrfachvererbung unterstützen:

class A() { readFile(); }
class B() : A {}       // overrides readFile in A
class C() : A {}       // overrides readFile in A
class D() : B, C {}    // what definition of readFile should be used?

Die obigen zwei Beispiele ähneln offensichtlich einer (Art von) Sprache, sind aber nicht wirklich diese Sprache und können möglicherweise nicht kompiliert werden. Sie veranschaulichen eher etwas, das Sie erklären möchten.

Abel
quelle
14
Es könnte sich lohnen, hinzuzufügen, dass Pseudocode auf jeder Abstraktionsebene leben kann: Sie könnten die spezifischen Funktionsweisen eines Algorithmus auf eine Weise beschreiben, die sich leicht in echten Nicht-Pseudocode übersetzen lässt, oder Sie könnten eine sehr hohe Ebene angeben Überblick über einige Ansätze mit sehr breit definierten "Methoden" oder "Objekten". Es ist ein breites Spektrum.
Joachim Sauer
8

Was ist Pseudocode? In dem folgenden Wikipedia-Artikel heißt es beispielsweise: "Es verwendet die strukturellen Konventionen einer Programmiersprache, ist jedoch eher für das menschliche Lesen als für das maschinelle Lesen gedacht." Bedeutet das, dass es eigentlich nicht zum Erstellen von Programmen verwendet wird?

Es ist genau das, es ist Code, der in einer menschlich freundlichen Form geschrieben ist. Es kann nicht verwendet werden, um ein Arbeitsprogramm zu erstellen.

Warum wurde es hergestellt / wird es verwendet?

Weil Pseudocode schnell zu schreiben und schnell zu lesen ist. Da es keine sprachspezifischen Teile hat, ist es klarer zu lesen. Es ist auch sprachunabhängig, so dass jeder es lesen kann (aus diesem Grund wird es in vielen Lehrbüchern verwendet)

Wird es als Programmiersprache angesehen? Siehe das obige Wikipedia-Zitat.

Nein. Eine Programmiersprache erfordert mehr als nur Struktur. Es erfordert eine formale Semantik, die dem Pseudocode fehlt.

Ist es allgemein bekannt / verwendet?

Ja. Jeder über einem Junior-Level sollte wissen, wie man Pseudocode liest / schreibt. Es ist wichtig, um viele Lehrbücher und Planungscodes in einem Team zu lesen.

Tom Squires
quelle
6

Wenn Sie den Wiki-Artikel gelesen haben, sollten die meisten Ihrer Fragen klar sein. Ich werde versuchen, sie hier einfacher zu beantworten. Schauen Sie sich diese 2 Beispiele an:

Teil 1 - Beispiele

Code # 1 - Kundenregistrierung - Ein Beispiel für Prozessschritte:

  1. Der Kunde wechselt zum Registrierungsbildschirm
  2. Der Kunde gibt seine Daten ein.
  3. Wenn gültige Daten eingegeben wurden, werden die Kundeninformationen in der Datenbank gespeichert
  4. Andernfalls wird ein Dialogfeld mit der Fehlermeldung 100 angezeigt.

Code Nr. 2 - Kundenname bestätigen - Ein Beispiel für eine Programmierfunktion

Function ValidateCustomerName(Name1)

If (Name1 is entered and Name2 is entered) then return 1

If (Name1 is not entered) 

   Send Error Message

   return 0

Endif

...

End Function

Teil 2 - Nun zu deinen Fragen

Was ist Pseudocode?

Es ist eine Möglichkeit, Schritte eines Algorithmus oder eines Prozesses zu schreiben.

Warum wurde es hergestellt / wird es verwendet?

Es wird verwendet, um die Prozess- oder Algorithmusschritte anzuzeigen, ohne von einer bestimmten Programmiersprache oder speziellen Notationen abhängig zu sein.

Wird es als Programmiersprache angesehen?

Es ist nicht kompilierbar, da es keine spezifische Syntax hat und daher keine Programmiersprache ist.

Wenn ja, ist es so fähig wie Python?

Es kann so leistungsfähig gemacht werden, wie Sie es möchten. Sie können Aussagen schreiben wie: Wenn das Alter gültig ist ...

Ist es allgemein bekannt / verwendet?

Ja. Es ist hilfreich, wenn Sie über Algorithmen nachdenken und wenn Business-Analysten Spezifikationen bereitstellen.

Keine Chance
quelle
@Jae, ich schätze die Bearbeitung.
NoChance
4

Das beste Beispiel für Pseudocode war, als ich ein Büro mit einem FORTRAN-Programmierer teilte, während ich in Pascal programmierte. Jedes Mal, wenn wir uns gegenseitig halfen, mussten wir es in Pseudocode schreiben. Zu der Zeit, als ich FORTRAN nicht kannte, gibt es für mich keine Möglichkeit, die Syntax zu korrigieren (insbesondere alle Einrückungen, die für bestimmte Marken erforderlich sind). Er musste nie mit Semikolons schreiben. Auf dem Whiteboard haben wir einen Pseudocode geschrieben, damit er verstanden werden kann, ohne uns auf komplexe Syntaxregeln einzulassen.

Das sind keine strengen Konstrukte für Pseudocode. Wenn der Schreiber eine Sprache kennt, die nach einer if-Anweisung "{" verwendet, wird sie an die Tafel gestellt, wenn er Python kennt, nicht. Ziel ist es, schnell den grundlegenden Ansatz für das Problem zu skizzieren, nicht den absolut korrekten Code.

Lehrer können damit einem Schüler eine Anleitung geben, ohne ihm die richtige Antwort zu geben. Wenn Sie mehr als eine Sprache kennen, sollte Pseudocode natürlich sein, wenn Sie Codefragmente skizzieren.

mhoran_psprep
quelle
2

Pseudocode ist keine Sprache, keine Konvention. Jedes Lehrbuch oder jede Arbeit würde eine eigene Version des Pseudocodes verwenden. Wie bei vielen anderen informellen mathematischen "Sprachen" würde es im besten Fall informell in der Arbeit selbst beschrieben, im schlimmsten Fall erwarten die Autoren, dass es "offensichtlich" genug ist.

SK-Logik
quelle
Im besten Fall ist es offensichtlich genug, keine formelle oder informelle Beschreibung zu verlangen;).
Abel
@Abel, so etwas wie einen "offensichtlichen" Formalismus gibt es nicht. Sogar etwas so "Offensichtliches" wie Dezimalarithmetik muss korrekt eingeführt werden. Ansonsten ist leider eine Verwechslung unvermeidlich. Ich habe noch nie einen eindeutigen Pseudocode ohne zumindest eine formale Einführung gesehen.
SK-logic
In diesem Thread geht es um Pseudocode. Der Formalismus hat damit nichts zu tun. Aber mein Kommentar war "Wortspiel beabsichtigt";).
Abel
@Abel, eine abstrakte Sprache ist auch ein Formalismus (zumindest in einer mehr oder weniger wissenschaftlichen Arbeit).
SK-logic
2

Was ist Pseudocode?

Pseudocode besteht im Wesentlichen aus Anweisungen, wie ein Programm eine Operation ausführen soll. Der Pseudocode ist in Ihrer Sprache verfasst. Sie schreiben einfach die Schritte eines Algorithmus oder einer Prozedur auf, damit Sie oder eine andere Person ihn leichter lesen und in eine echte Programmiersprache konvertieren können.

Warum wurde es hergestellt / wird es verwendet?

Es soll Ihnen dabei helfen, die Schritte einer Prozedur, eines Prozesses oder eines Algorithmus ohne Verwendung einer Programmiersprache anzugeben. Eine mögliche Alternative ist die Verwendung von Flussdiagrammen.

Wird es als Programmiersprache angesehen?

Nein, es ist keine Programmiersprache, da es keine formalen Regeln gibt.

Ist es allgemein bekannt / verwendet?

Persönlich versuche ich immer, Pseudocode zu verwenden, wenn ich Algorithmen oder komplexe Prozeduren schreibe.

Chris Mylonas
quelle
0

Meine persönliche Definition von Pseudocode ist "das, was ich beim Entwerfen von Code in einfachem Englisch auf ein Blatt Papier schreibe".

Vor dem Codieren aus einem Pseudocode "Design" werde ich meinen Pseudocode als Kommentar hinzufügen. Wenn ich dann diese Kommentare durcharbeite, kann ich den "tatsächlichen" Code hinzufügen, der die beschriebene Aufgabe ausführt.

Möglicherweise gibt es für diese Codierungsmethode einen offiziellen Namen, den ich nicht kenne, und ich verwende ihn nur, wenn ich etwas Neues / Kompliziertes mache.

AnthonyBlake
quelle
-4

Wie mein Programmierdozent sagte:

Pseudocode ist die englische Version jeder Programmiersprache.

CincauHangus
quelle
2
-1 Nicht hilfreich. Das Zitat ist nur bei einer Erklärung des Pseudocodes sinnvoll (fehlt in dieser Antwort). Andernfalls könnte es sehr irreführend sein. Ein Neuling könnte sich fragen: Nun, die Methoden von C # sind alle auf Englisch, was bedeutet, dass das von mir verwendete C # Pseudocode ist, oder? Wie nennen sie es, wenn sie in Deutschland C # verwenden?
Doppelgreener