Schachburg-Archiv: Benutzerthema „kleine programmiersprache e“

schachburg.de

Beitrag von ruf012

und | oder [] Inhalt kann entfallen {} Anzahl -- Zeile {0-80} Zeichen Programm 1.Zeile mit Programmdefinition {0-1}Kommentar 2.Zeile mit {0-n}Anweisung Programmdefinition=Progi[({0-4}Var)] ..... P1 P002(A B) Anweisung:= Proga=Prog[({1-4}Konvarip)] .....Programmaufruf ({2-3}Konvari{0-n} Anweisung) .....Bedingung, wenn Konvari(1) (_{2-3}Konvari{0-n} Anweisung) .....Wiederholung, solange Konvari(1) D0=d .....Datei löschen D@=d .....Protokolldatei zuordnen D_=d .....Ausgabedatei zuordnen _D=d .....Eingabedatei zuordnen Var@ .....Variable schreiben nach Protokolldatei Var_ .....Variable schreiben nach Ausgabedatei _Var .....Variable lesen von Eingabedatei Vari=[O1]Konvari[O2 Konvari] .....Zuweisung -- Progi=a[{1..3}an] .....P001, in der selben Programmdatei. Proge=.Progi[{1..}an] ..... .UP-Extern005 Prog=Progi|Proge .....P001 .UP-Extgern005 Konvarip=Koni|[.]Vari .....3456(2) .A(3-8) Konvari=Koni|Vari .....A A(2) abc(1-C) Koni=Kon[Intervall] .....3456(2) Vari=Var[Intervall] .....A(2) Intervall=(Konvar[-Konvar]) .....(2) (1-C) Konvar=Kon|Var .....A 32 abc Var=a .....A Kon=Zeichen|Zahl .....32 abc Zeichen={0..40}k .....abc Zahl={0..40}n .....32 O1=+|- O2= O1|´.´|´/´|´*´ d=a[{0..}an] .....für Dateinamen zugelassene Zeichen a:=A..z n:=0..9 an:=a n k:=a 4 . .. .....abdruckbare Zeichen, ein = , leer= --- {0-1}Protokolldatei {0-1}Eingabedatei {0-1}Ausgabedatei gleichzeitig geöffnet. Die Dateizuordnung wird nach unten weitergegeben und bleibt erhalten, auch wenn im gerufenen Programm die Zuordnung zwischenzeitlich geändert wurde. Bei internem Programmaufruf können alle Programme alle Variablen innerhalb der Programmdatei verändern. Bei externem Programmaufruf, nur Paramtervariable mit . davor können veraendert werden. .k1k(A B .e) e kann im gerufenen Programm verändert werden. Indexrechnung mit mehrdimensionalen Feldern möglich. Bei Abbruch versucht das Laufzeitsystem nach der Protokolldatei zu schreiben, sonst nach Systemdatei. Keine Systemfehler Behandlung im Programm.[HR][/HR]Beispiele Programmaufruf p0 pppp() .P1234567(´´ ´e´ .A 4) .....anderer ModulZuordnung A=´´ A=´m´ A=´abcd´.´efgh´ B=´abc´.A C=B C=´abcabcdefgh´ C=B(7) C=´d´ C=B(7-9) C=´def´ a=102000510120247 C=a C=102005010120247 C=a(7) C=5 C=a(7-9) C=510 C=a.234 C=102000510120247234 A=A A=-A A= Binärform von -A B=cdef A=A*B B= Binärform von A*B(´´ A A_) .....wenn A vorhanden, dann A schreiben nach Ausgabedatei _A (_´´ A A_ _A) .....A lesen von Eingabedatei. Solange A vorhanden, schreiben nach Ausgabedatei und A lesen von Eingabedatei.--Datei Kk1 logische Operationk1k(A B e) wenn Ae=0 (A B e=1)k1kh(A B e) wenn Ae=1(B A e=0)k1u(A B e) wenn A!=B dann e:=1 e=0 (A B e=1)(B A e=1)k1h(A B e) wenn A=B dann e:=1 e=1(A B e=0)(B A e=0)k2 Datei Operationk2k Datei kopieren, Eingabedatei nach Ausgabedatei_A(_´´AA__A)k2dl(A a) A direkt von Eingabedatei lesen, Index A(1-a)k2d1 k2d2k2d1 Positionieren auf Index A(1-a)B=A(1-a) _C(_´´ C(1-a) B _C)k2d2 A zurück, falls nicht gefunden A=(B C(1-a) C=´´)A=Ck2ds(A a) A direkt nach Ausgabedatei schreiben, Index A(1-a)B=A(1-a) k2d4 k2d5 k2d6k2d4 Satz kopieren, Index _C(_´´ C(1-a) B C__C)k2d5 Schreiben AA_(B C(1-a) C_)k2d6 Satz kopieren A(1-a) _C(_´´ C C__C)k2dp(A) ab Prefixnummer A aufsteigend um 1_B(_´´B B=AB B_ A=A+1 _B)----Datei pp1 wenn (C .k1k(C D .e) (0 e .P00)--p0 falls e in (1..4) (0 e p1)(0 e p2)(0 e p3)(0 e p4)p1 falls(e=1)rufen P1 (e 2 P1 e=0)p2 falls(e=2)rufen P2 (e 3 P2 e=0)p3 falls(e=3)rufen P3 (e 4 P3 e=0)p4 falls(e=4)rufen P4 (e 5 P4 e=0)

Beitrag von ToBeFree

Kennst du [Hier befand sich ein Link auf die Seite "https://de.wikipedia.org/wiki/Piet_(Programmiersprache)". Der Link wurde vom Benutzer mit dem Titel "Piet" versehen. Aus urheberrechtlichen Gründen ist es möglicherweise erforderlich, diesen Hinweis beizubehalten, da manche Benutzer die Quelle ihrer Zitate von anderen Internetseiten so gekennzeichnet haben. Dieser Hinweis wurde automatisch an Stelle des früheren Links platziert. Falls der Link unangemessen oder ohnehin unerreichbar geworden ist, kann die im Impressum genannte Adresse mit einer Bitte um Entfernung kontaktiert werden.]? :D

Beitrag von ruf012

Das sehe ich zum ersten Mal. Die Darstellung mag optisch abwechslungsreich sein, aber für umfangreiche Aufgaben füllen sich die Datenträger.

Beitrag von ruf012

e versucht mit wenig Sprachelementen und Text auszukommen.Einfacher Editor erstellt Programmdateien.[HR][/HR] Der Übersetzer reagiert bei ungültiger Syntax mit Unterstützung.Programren erstellt. ------------------- p1() (a b c dÜbersetzer: p1() (a b c d....... |....... = .......... |.......... ()Programren korrigiert. ------------------- p1() (a b c=dÜbersetzer: p1() (a b c=d.......... |.......... ()Programren korrigiert. ------------------- p1() (a b c=d) Übersetzer:Übersetzer: p1() (a b c=d)[HR][/HR] Testen mit Protokolldatei. p1 t=p1 startet t@ a=1 t=a=.a t@ t=p1 Ende t@ Protokoll:p1 starteta=1p1 Ende [HR][/HR] L1(a) Dieses Programm des Laufzeitsystems ruft Betriebsystemprozeduren auf und liefert das Ergebnis zurück. Bei ungültigem Parameter a gibt es eine weiterführende Syntax. Programren kennt die Aufrufparamter nicht. p1 a= .L1(.a) a@ Protokoll: Z .. .. weitere Parameter möglich. Programren kennt einzelne Parameter. p1 Aufruf mit Parameter Z a=Z .L1(.a) a@ Protokoll: 20150619085800 Datum Uhrzeit.

Beitrag von ruf012

Laufzeitsystem nach Protokolldateip1() .p2 unbekannt .p2() |p1() numerisch unverträglich mit abdruckbar A=1 B=2 A=A-B....................|p1() abdruckbar unverträglich mit numerisch A=1 B=2 B=B-A....................|[HR][/HR] Gleichheitp1 if A=B then p4 endp2 e=A-B (-1 e 1 p4)p2A=11 B=52--p1 if A=B then p4 endp2 e=A-B (d e f p4)p2 f=1 binär, d=-1 binärA=a B=ab f=B-A d=-f [HR][/HR]indizierte Variablep0 p1 p2 p3 p4 p5 p6 p7p1 A(1)=27 A(2)=abc B(1)=Ap2 A(1)=21 A(2)=abcd B(2)=Ap3 C(1)=Bp4 A(1)=15 A(2)=c B(1)=Ap5 A(1)=57 A(2)=cd B(2)=Ap6 C(2)=B C(7)=x C(5)=9p7 D=C[HR][/HR]Beispiele.p1(n .m) m-Summe der Zahlen von 1..ni=1 m=1 (_1 n i=i+1 m=m+i)Umwandlung dezimal-binaer 21:20 09.06.2015[url]http://www.onlinemathe.de/forum/Warum-ist-der-Rest-die-Binaerzahl[/url]Zahlenfolge 16:41 07.06.2015[url]http://www.onlinemathe.de/forum/zahlenfolgen-77[/url]

Beitrag von ruf012

Im Batchbetrieb Zeugnisse erstellen. Eine Datei mit einfachem Editor erstellt, wird dem Zeugnissprogramm gesendet. Verwaltungsantwort ebenfalls in einer Datei, lesbar mit einfachem Editor. Gegenüber einem Dialogprogramm verändert sich die Belastung von Bedienren, Leitungen und Rechner. Syntax a= b= c= d= e Zuordnung Note zu Gegenstand f Zeugnisse drucken z Ende der Eingabedatei -- Bei Eingbe einer leeren Datei enthält die Verwaltungsantwort Syntax und Fallbeispiele. -- Datei, Noten zu Gegenständen a=Schuletest1 b=Lehrer1 c=3a d=Aladin e R.1 D.3 E.2 GW.1 M.2 BU.1 ME.1 Ma.3 d=Berta e R.1 D.4 E.3 GW.2 M.1 BU.2 ME.1 d=Caesar e R.2 D.1 E.2 GW.2 M.1 BU.2 ME.1 Ba.1 d=Zepelin e R.1 D.1 E.1 GW.1 M.2 BU.1 ME.1 z -- Datei, Zeugnisse drucken a=Schuletest1 b=Lehrer1 c=3a d=Aladin f d=Berta f d=Caesar f b=Lehrer2 c=4b d=Mathilde f z

Beitrag von ruf012

#1Modifikation, keine geschachtelte Bedingung und Wiederholung Anweisung:= Anweisung2 | ({2-3}Konvari{0-n}Anweisung2) Bedingung, wenn Konvari(1) | (_{2-3}Konvari{0-n}Anweisung2) Wiederholung, solange Konvari(1) Anweisung2:= Prog[({1-4}Konvarip)] Programmaufruf | D0=d Datei löschen | D@=d Protokolldatei zuordnen | D_=d Ausgabedatei zuordnen | _D=d Eingabedatei zuordnen | Var@ Variable schreiben nach Protokolldatei | Var_ Variable schreiben nach Ausgabedatei | _Var Variable lesen von Eingabedatei | Vari=[O1]Konvari[O2 Konvari] ZuweisungLiest der Übersetzer eine leere Datei, gibt er die gesamte Syntaxbeschreibung aus, mit einigen Programmbeispielen.[HR][/HR]Beispiele.p1 (B A n .a) Suchen B in A(1..n), unsortiert. a=0 oder B=A(a) i=0 (_i n i=i+1 p2)p2 C=A(i) a=i (B C a=0) (C B a=0) (0 a i=n)--p1 (B A n .a) Suchen B in A(1..n), aufsteigend sortiert. a=0 oder B=A(a) a=n i=1 (_i n p2) p4p2 i=i+1 (B A(i) a=i-1 i=n) p4 C=A(a) (B C a=0) (C B a=0)

Beitrag von ToBeFree

#5 und #6 erinnern mich an meine Experimente mit der Windows-XP-.bat-Syntax. Ich habe damals versucht, ähnliche Aufgaben mit einer solchen Batch-Datei zu lösen, musste aber einzelne Teile (z.B. Benutzereingaben) mit kleinen C-Programmen nachbilden. :)Ich verstehe allerdings nicht ganz, wieso die Sprachlastigkeit bzw. die Verwendung von Wörtern, die man im echten Leben ebenfalls nutzt, bei "normalen" Programmiersprachen wie C bzw. Skriptsprachen wie Python ein Nachteil sein soll - denn nur so ein Nachteil würde ja eine Programmiersprache wie "e" zu einer sinnvollen Alternative machen. Um Speicherplatz zu sparen, ist selbst das schrecklich schlecht komprimierende gzip effektiver als das manuelle Weglassen von möglichst viel Text, wage ich mal zu behaupten. ;)Auch mögliche Zeitersparnis für jeden außer vielleicht den Erfinder der Programmiersprache wage ich zu bezweifeln, denn die Zeit, die man benötigt, um sich in dieses Buchstabengewirr ordentlich einzuarbeiten und dann eben doch jeden zweiten Befehl mangels Intuitivität nachschlagen zu müssen, investiert man wohl besser in das Üben schnellen 10-Finger-Tippens. Davon hat man dann nicht nur beim Programmieren etwas, erzeugt Code, den andere Menschen ebenfalls ohne eine ähnlich lange Einarbeitung intuitiv verstehen und kann auf Compiler zurückgreifen, die neben einem deutlich breiteren Funktionsumfang auch die Robustheit, Effizienz und Portabilität einer seit Jahrzehnten von hunderten Experten kontinuierlich verbesserten und von Millionen Benutzern auf Herz und Nieren geprüften Software bieten können.^^

Beitrag von ruf012

#8 (#6 Batchprogramme)Ein Rechner mit einem Zeugnisschreibprogramm Z nimmt im Dialogbetrieb die Eingaben einzelner Bediener, den Zeugnisverantwortlichen an.Wenn die Zeit der Zeugniserstellung gekommen ist,nehmen alle diese Bediener mit Z fast zu gleichen Zeit Verbindung aufund tippen für ihre Kundschaften die Noten ein.Pro Bediener hat Z samt Leitungen etwa eine halbe Stunde zur Verfügung zu stehen.[HR][/HR]Schreiben die Bediener in Ruhe ihre Vorgaben auf eine Datei am lokalen Rechner,sind Z und Leitungen in dieser Zeit unbelastet.Senden die Bediener die erstellten Dateien Richtung Z,werden dabei die Leitungen pro Bediener nur in wenigen Sekunden belastet.Z liest die einzelnen Dateien im Batchbetrieb,hat also immer nur eine Vorgabe zu bedienen,keine Bereitschaft für n Dialoge.Die Antwort von Z in Dateien wird den Bedienern zurückgesandt.Wiederum eine Belastung pro Bediener der Leitungen in Sekunden.Die Bediener können in Ruhe die Antwort bearbeiten.Dabei sind Z und Leitungen unbelastet.--Für die Bediener ist kein Programm nachzubilden.Z ist in beiden Betriebsarten notwendig.

Beitrag von ruf012

#8 (#1 Syntax)Begründung für möglichst wenig Sprachelemente und TextJe wenger Sprachelemente und Text ein Übersetzer zu bearbeiten hat,desto kleiner kann er ausfallen, .....damit auch die Belastung auf den Rechnern wo er installiert ist,desto weniger komplex kann er ausfallen,.....damit kann die Wartungsarbeit vereinfacht werden, .....damit die Versionszahl vermindert.Je weniger Sprachelemente eine Person zu lernen hat, desto leichter gewinnt sie einen Überblick über die Syntax, desto leichter kann sie damit hantieren, mit weniger Lesen von Beschreibungen.[HR][/HR]Ein Vergleich zu Mathematik, 5.-10.Schulstufe. Es ist üblich, mit kurzem Text einen Zusammenhang darzustellen. Beim Rechteck p1 F-Fläche, a-Länge, b-Breite F=a*b liest sich anders als Fläche=Länge*Breite Bei häufiger Wiederholung der Variablen ist weniger Schreibaufwand notwendig. Beim Überblick über eine ganzen Seite wird die Sicht nicht abgelenkt von vielem Text. Das nachträgliche Betrachten im Inneren ist mit der kurzen Darstellung leichter. Mag alles eine subjektive Sicht sein. [HR][/HR]Ein Vergleich zum Schach: Problemschach versucht, unnötige Kräfte am Brett zu meiden, um leichter eine Lösung zu finden. Ästhetik durch Ökonomie. Kommen neue Figuren mit besonderen Eigenschaften dazu, verändert sich das Denken Richtung Komplexität und damit Fehleranfälligkeit.

Beitrag von ruf012

#8 (#1 Syntax)AnwendungAnfängliches Nachblättern in der Beschreibung wird bei jeder Sprache notwendig sein.Ob man sich mehrere Verzweigungen merkt, oder nur (a b c=d)Ob man sich mehrere Schleifen merkt oder nur (_a b c=d)Was ist einfacher.Dass oft Worte einer Umgangsprache notwendig erscheinen,zeigt das nicht schon eine Überlastung der Bediener.

Beitrag von ruf012

#8 (#1 Syntax)BenutzerWer macht sich Gedanken über solche Abkürzungen.Der Programmierer, dem eine Sprache vorgegeben ist,kann sein, aber was macht er mit dem Ergebniss seiner Gedankengänge.Er wird die vorgegebene Sprache einsetzen, um seine Vorgaben zu erfüllen. Der Projektveranwortliche,er hat vielleicht die Auswahl von mehreren Sprachen,Originalitätsverhalten in Richtung neuer Sprachenwird von ihm aber nicht gefordert werden.Der Vetrieb,er hat kaufmännische Ziele zu verfolgen,Sprachänderungen, schon gar nicht Kürzungen,fallen nicht in sein Ressort.Die Entwickler von Übersetzern,kann sein,aber Überlegungen, etwas zu verkleinern, passen nicht immer unbedingt in die Strategie von Herstellern.Ein Hochschulassistent,kann sein, eine Abschlussarbeit für das Archiv.Ein Pensionist,als Erinnerung an die Arbeitszeit.

Beitrag von ruf012

#8 (#1 Syntax)EigenschaftenEin Programm erscheint mir robust,wenn es auf alle Situationen möglichst sinnvoll reagiert.Was ist die Robustheit einer Sprache.[HR][/HR]Ein Programm erscheint mir effizient,wenn es mit möglichst wenig Aufwand vorgegebene Ziele erreicht.Was ist die Effizienz einer Sprache.Wenn mit möglichst wenig Aufwand, Programme geschrieben werden können. Aber welcher Aufwand,an Hauptspeicher, Externspeicher, Ablaufzeit, Entwicklunszeit,Lesbarkeit, Wartungsfreundlichkeit, innerer Kraft der Entwickler.[HR][/HR]Ein Programm erscheint mir portabel,wenn es möglichst leichtauf verschiedene Betriebssysteme zum Ablauf gebracht werden kann. Was ist die Portabiliät einer Sprache.Dafür gibt es Übersetzer und Laufzeitsystem,weniger die Syntax.

Beitrag von ruf012

DateizugriffeBeispieleAusgabedatei dat1 nicht vorhanden p1 fortsetzen D_=dat1 A=12 A_dat1 12p1 fortsetzen D_=dat1 A=12 A_dat1 12 12--p1 neu schreiben D0=dat1 D_=dat1 A=123 A_dat1 123p1 neu schreiben D0=dat1 D_=dat1 A=123 A_dat1 123[HR][/HR] IndexdateiMit dem Definieren einer Indexdateisteht im aktuellen Programmneben der Protokolldatei keine weitere Datei zu Verfügung.dat2 Index(1..8)Name1 123Name2 234Name7 721--p0 Indexdatei, sequentielles Lesen vom Anfang_D=dat2 A= _A (_ A A@ A= _A)ProtokolldateiName1 123Name2 234Name7 721 --p1 Indexdatei, sequentielles Lesen ab Index_D=dat2 A=Name2 _A (_ A A@ A= _A)ProtokolldateiName2 234Name7 721--dat2 Index(1..8)Name1 123Name2 234Name7 721p2 Indexdatei, Satz ändern_D=dat2 A=Name7 _A ( A A@ A(10)=8 A_ A@)dat2 Index(1..8)Name1 123Name2 234Name7 781ProtokolldateiName7 721Name7 781--dat2 Index(1..8)Name1 123Name2 234Name7 781p4 Indexdatei, Satz löschen_D=dat2 A=Name2 _A ( A A@ A=A(1-8) A_ A@)dat2 Index(1..8)Name1 123Name7 781ProtokolldateiName2 234Name2[HR][/HR]aktuelle Dateien schliessenD@=_D=D_=

Beitrag von ruf012

p1(a .b) ProgrammDer Übersetzer prüft, dass Parameter a in p1 nicht verändert wird.In keiner Zuweisung auf der linken Seite von =,In keinem Programmaufruf auf der rechten Seite von . [HR][/HR]Modul mit mehreren Programmen.Das erste Programm ist das einzige Eingangs- und Rückkehrprogramm.A-AdresseMAEin Verzeichnis aller im Modul verwendeten Variablen, auf das jedes Programm im Modul adressieren kann.PAFür jedes Programm eigene Dateidefinitionen (D@ _D D_) und ebentuell Parameter.Beim Übersetzen erscheint ein Variablenname entweder in MA oder in (0..n)PA.[HR][/HR]modul1 ---------------------------------------p1a=1 p2p2a=2 b=2 MAA(a)A(b)PA.p1 A(0)A(0)A(0)PA.p2A(0)A(0)A(0)modul2 -----------------------------------p1D@=prot0 _D=d1 D_=d2 i=0 j=0 .modul4(i j)MAA(i)A(j)PA.p1Beim StartA(0)A(0)A(0)Vor Aufruf von modul4 und nach dessen RückkehrA(prot0)A(d1)A(d2)modul4 ------------------------------------p1 (N .M)D@=prot4 _D=dat10 D_=dat11 a=1 p2(N .M 1) p2 (u .v n)_D=dat2 a=2 v=2 p4p4D_=dat4 a=4MAA(a)PA.p1 Beim Aufruf von p1A(prot0)A(d1)A(d2)A(i)A(j)Vor Aufruf von p2 und nach dessen RückkehrA(prot4)A(dat10)A(dat11)A(i)A(j) PA.p2Beim Aufruf von p2A(prot4)A(dat10)A(dat11)A(i)A(j) a(1)Vor Aufruf von p4 und nach dessen RückkehrA(prot4)A(dat2)A(dat11)a(i)A(j)A(1)

Beitrag von ruf012

#6 Ergänzung.Eine Dialoganwendung, die mehrere Bediener aus deren Sicht gleichzeitig versorgt,braucht meist Sperren beim Zugriff auf Dateien.Erleichternd für viele, kann das eine mit dem anderen entfallen.

Beitrag von ruf012

#16 Ergänzung Batchbetrieb mit zwei zeitgleichen Anwendungen P1, P2 ändern Indexdatei.Satz(z) ohne Sperre p1(z .e) lesen z.e _t(z) e=t(5) p2(z e n .r) aendern z.e nach z.n r=0 _t(z) a=t(5) (e a r=1)(a e r=1)(r 1 t(5)=n t_) p18 aendern z.e u=8 p2(z e u r) p19 aendern z.e u=9 p2(z e u r) Anwendung Programm ..... a ..... r ..... u ..... e ..... t ..... || z P1 ............................................................................. abcd7 ..... p1(z .e) ................................................................ abcd7 ....... _t(z) ...................................................... abcd7 .. abcd7 ....... e=t(5) ........................................... 7 ..... abcd7 .. abcd7 P2 ............................................................................. abcd7 ..... p1(z .e) ................................................................ abcd7 ..... _t(z) ........................................................ abcd7 .. abcd7 ..... e=t(5) ............................................. 7 ..... abcd7 .. abcd7 P1 ........................................................ 7 ..... abcd7 .. abcd7 ..... p18 ................................................. 7 ..... abcd7 .. abcd7 ..... u=8 ......................................... 8 .... 7 ..... abcd7 .. abcd7 ..... p2(z e u r) ................................ 8 .... 7 ..... abcd7 .. abcd7 ..... r=0 .................................. 0 .... 8 .... 7 ..... abcd7 .. abcd7 ..... _t(z) ................................ 0 .... 8 .... 7 ..... abcd7 .. abcd7 ..... a=t(5) ..................... 7 ..... 0 .... 8 .... 7 ..... abcd7 .. abcd7 ..... (e a r=1) .................. 7 ..... 0 .... 8 .... 7 ..... abcd7 .. abcd7 ..... (a e r=1) .................. 7 ..... 0 .... 8 .... 7 ..... abcd7 .. abcd7 ..... (r 1 ......................... 7 ..... 0 .... 8 .... 7 ..... abcd7 .. abcd7 ..... t(5)=n ...................... 7 ..... 0 .... 8 .... 7 ..... abcd8 .. abcd7 ..... t_) ........................... 7 ..... 0 .... 8 .... 7 ..... abcd8 .. abcd8 P2 ......................................................... 7 ..... abcd7 .. abcd8 ..... p19 .................................................. 7 ..... abcd7 .. abcd8 ..... u=9 .......................................... 9 .... 7 ..... abcd7 .. abcd8 ..... p2(z e v r) ................................. 9 .... 7 ..... abcd7 .. abcd8 ..... r=0 ................................... 0 .... 9 .... 7 ..... abcd7 .. abcd8 ..... _t(z) ................................. 0 .... 9 .... 7 ..... abcd8 .. abcd8 ..... a=t(5) ....................... 8 ..... 0 .... 9 .... 7 ..... abcd8 .. abcd8 ..... (e a r=1) .................... 8 ..... 1 .... 9 .... 7 ..... abcd8 .. abcd8 ..... (a e r=1) .................... 8 ..... 1 .... 9 .... 7 ..... abcd8 .. abcd8 ..... (r 1 t(5)=n t_).............. 8 ..... 1 .... 9 .... 7 ..... abcd8 .. abcd8

Beitrag von ruf012

Forum mit begrenztem Speicher und Archiv Der bereitgestellte Speicher mit physikalischen Auswirkungen bei Entstehung und Betrieb. Der bereitgestellte Text mit psychischen Auswirkungen zumindest bei Leseren.[HR][/HR] Admin Versorgt Textren mit verfügbarem Speicher. Übernimmt freigegebenen Text vollständig oder geändert ins Archiv, oder löscht ihn überhaupt. Textren Erstellen Text innerhalb ihres verfügbaren Speichers und geben Text frei.[HR][/HR] Aufwandsmessung in Zeichen, ebentuell auch Worte, Zeilen, Diagramme,.. Beispiel, ohne Berücksichtigung des Verwaltungsaufwandes Freier Speicherplatz in Zeichen Anfangswerte Speicher.Forum....2^24..16 777 216 - 16 777 216 =..............0 Speicher.Archiv....2^23....8 388 608 - .............0 =..8 388 608 Speicher.Admin....2^22....4 194 304 - .............0 =..4 194 304 Speicher.Textren..2^22....4 194 304 - .............0 =..4 194 304 Speicher.Hugo............................0 - .............0 =..............0 Admin versorgt Hugo mit........ 4 096 Speicher.Textren..............4 194 304 - ......4096 =...4 190 208 Speicher.Hugo.......................4 096 - ...........0 =.........4 096 Hugo erstellt Text(abcd) Speicher.Hugo.......................4 096 - ...........4 =.........4 092 Hugo gibt Text(abcd) frei Speicher.Hugo.......................4 096 - ...........0 =.........4 096 Speicher.Admin................4 194 304 - ...........4 =....4 194 300 Admin überträgt Text(abcd) nach Archiv Speicher.Forum..............16 777 216 - 16 777 216 =.............0 Speicher.Archiv................8 388 608 -..............4 =..8 388 604 Speicher.Admin................4 194 304 -..............0 =..4 194 304 Speicher.Textren..............4 194 304 -.........4096 =..4 190 208 Speicher.Hugo.......................4 096 -..............0 =........4 096[HR][/HR] 1)mit neuem Text (efgh) antworten Hugo2 (Hugo: abcd) STRG-d Syntax: ESC n-neu Nur bei ungültiger Eingabe erscheint die Syntax. --- | |..4 belegt | --- n (Hugo2: ) (Hugo2: efgh) STRG-d Syntax: ESC b n-neu --- | |.....b=Hugo.20160220.144200 |..4 belegt | ---[HR][/HR] 2)aendern Text Hugo (Hugo: abcd) STRG-d Syntax: ESC p1 n-neu ee-freigeben --- | |..4 belegt | --- ESC (Hugo abcd) (Hugo abcde) STRG-d Syntax: ESC p1 n-neu ee-freigeben --- | |..5 belegt | ---[HR][/HR] 3)positionieren bei 2 Antworten untereinander Hugo3 (Hugo3: ijkl) STRG-d Syntax: ESC b n-neu ee-freigeben --- | |.....b=Hugo2.20160220.145300 |..4 belegt | --- b Hugo3 (Hugo2: efgh) STRG-d Syntax: ESC b p1 n-neu --- | |.....b=Hugo.20160220.144200 |..4 belegt |.....p1=Hugo3.20160225.101500 | --- b Hugo3 (Hugo: abcd) STRG-d Syntax: ESC p1 n-neu --- | |..4 belegt |.....p1=Hugo2.20160220.145300 | --- p1 Hugo3 (Hugo2: efgh) STRG-d Syntax: ESC b p1 n-neu --- | |.....b=Hugo.20160220.144200 |..4 belegt |.....p1=Hugo3.20160225.101500 | --- p1 Hugo3 (Hugo3: ijkl)[HR][/HR] 4)freigeben Text mit 2 Antworten untereinander Speicherbedarf wird anderem Textren zugeordnet Der letzte Textren gibt Text samt Antworten frei nach Admin Hugo2 (Hugo2: efgh) STRG-d Syntax: ESC b p1 n-neu ee-freigeben --- | |.....b=Hugo.20160220.144200 |..4 belegt |.....p1=Hugo3.20160225.101500 | --- ee Hugo2 (Forum.Kapitel.a) Hugo (Hugo: abcd) STRG-d Syntax: ESC p1 n-neu ee-freigeben --- | |..4 belegt |..4 p1=Hugo2.20160220.145300 | --- ee Hugo (Forum.Kapitel.a) Hugo3 (Hugo3: ijkl) STRG-d Syntax: ESC b n-neu ee-freigeben --- | |..8 b=Hugo2.20160220.145300 |..4 belegt | --- ee Hugo3 (Forum.Kapitel.a)[HR][/HR] 5)positionieren bei n Antworten nebeneinander Hugo (Hugo: abcd) STRG-d Syntax: ESC p p1..p4 n-neu ee-freigeben --- | |..4 belegt |.....p1=Hugo.. |.....p2=Hugo2.. |.40 p3=Hugo3.. |.....p4=Hugo4.. |.....p | --- p Syntax: ESC b p p5..p8 --- | |.....b |.....p5=Hugo5.. |.....p6=Leo62.. |....16 p7=Leo17.. |....48 p8=Leo18.. |.....p | --- p Syntax: ESC b p9..p11 --- | |.....b |.....p9=Otto25.. |.20 p10=Karl01.. |.....p11=Maximilian25.. | --- b Syntax: ESC b p p5..p8 --- | |.....b |.....p5=Hugo5.. |152 p6=Leo62.. | 16 p7=Leo17.. | 48 p8=Leo18.. |.....p | --- ESC Hugo (Hugo: abcd) ESC Hugo (Forum.Kapitel.a)

Beitrag von ruf012

_#14 e Dateien schliessen. Das Laufzeitsystem öffnet eine geschlossene Datei bei deren ersten Definition, und schliesst sie mit Ende des Programmes, das diese Definition enthält. [HR][/HR] p1 p2 p4 p2 D_=dat01 i=1 i_ D_=dat02 i=2 i_ p3 p3 D_=dat01 i=3 i_ D_=dat03 i=4 i_ p4 D_=dat01 i=5 i_ D_=dat03 i=7 i_[HR][/HR] Datei ( öffnen ) schliessen ................................ i ... dat01 ... dat02 ... dat03 p1 p2 p2 D_=dat01 ................... ( ... i=1 ....................... 1 ... i_ ............................... ( 1 ... D_=dat02 ................................. ( ... i=2 ....................... 2 ... i_ ............................................ ( 2 ... p3 p3 D_=dat01 .................... ( 1 ... i=3 ....................... 3 ... i_ ............................... ( 1 3 ... D_=dat03 .............................................. ( ... i=4 ....................... 4 ... i_ ........................................................ ( 4 p3. .......................................................... ( 4 ) p2. ................................. ( 1 3 ) ... ( 2 ) p1 p4 p4 D_=dat01 ...................... ( 1 3 ... i=5 ........................ 5 ... i_ ............................... ( 1 3 5 ... D_=dat03 .............................................. ( 4 ... i=7 ........................ 7 ... i_ ....................................................... ( 4 7 p4. .................................. ( 1 3 5 ) .......... ( 4 7 ) p1.

Beitrag von ruf012

vorzeitiges Programmende Ausgabe der Werte unmittelbar davor. Vom Laufzeitsystem nach D@, falls nicht möglich, nach einer Systemdatei. ..... verwendete Dateien ..... aktuelle Module mit aktuellen Programmen und Modulvariablen ..... falls möglich Text vom Betriebssystem[HR][/HR]Beispiel. Im Modul mod001 wurden im Programm .... p1 die Protokolldatei prot01 geöffnet. .... p7 die Ausgabedatei li02 gelöscht, geöffnet und geschlossen. .... p4 die Ausgabedatei li10 geöffnet. Im Modul mod001 waren die Programme p1 p2 p7 und p4 im aktuellen Ablauf. Es wurden die Parameter 17 25 .abc dem Modul mod002 übergeben, mit den Prozeduren Q1 und Q2. Modul mod010 übernahm davon den Parameter abc in seine Prozedur li10. [HR][/HR] prot01: D@ mod001.p1 (prot01 D_ mod001.p7 0(li02) mod001.p4 (li10 ------------------------------------------ mod001.p1 p2 p7 p4 A ......... 25 B ......... abc C ......... (1) ..... 19 ............ (5) ..... (8) .......... def ....................... (12) ........ 25 ............ (12) ... (1) .......... ghi ....................... (2)-(4) .... 27 ....................... (5) ......... jkl D .......... i ........... 4 j ........... 2 --------------------------------------------------------------- 17 25 .abc mod002.Q1 Q2 Q ........ abc i ......... 17 j ......... 25 --------------------------------------------------------------- .abc mod010.li10 T ........ abc --------------------------------------------------------------- Betriebssystem.0CXa013: abc nicht nach li10 geschrieben.

Beitrag von ruf012

Modulbeginn Alle Modulvariablen werden gelöscht. Das erste Programm im Modul ist einziger Eingang und einziger Ausgang des Moduls. Dateidefinitionen werden übernommen. Paramter, nur zum Lesen, werden in die entsprechenden Modulvariablen kopiert. Von beschreibbaren Parametern wird die Adresse der aktuellen Variable übernommen. #1 #15 Ergänzung Die weiteren Programme im Modul bedürfen keiner Parameterisierungsmöglichkeit.

Beitrag von ruf012

Der Versuch einer Zusammenfassung Dateien enthalten jeweils einen Modul, erstellt mit einem einfachen Editor. Das erste Programm im Modul ist dessen einzige Aufrufstelle und einzige Rückgabestelle. Nur dieses erste Programm ist parameterisierbar. Weitere Programme können durch Leerzeilen getrennt sein. Jedes Programm besteht aus zwei Zeilen. Eine Zeile mit Programmdefinition und eventuell Kommentar, eine weitere Zeile für Anweisungen. Alle Programme eines Moduls können dessen Variable verändern, Variable ausserhalb des Moduls nur als .Parameter. Indexrechnung mit mehrdimensionalen Feldern möglich. Keine Schachtelung von Bedingung und Wiederholung. Keine Rekursion. Von Betriebssystem erkannte Fehlersituationen bewirken ein Ende im Laufzeitsystem, ohne Rückkehr zum aufrufenden Programm. Das Laufzeitsystem versucht nach der Protokolldatei zu schreiben, sonst nach einer Systemdatei. Die Dateizuordnung wird nach unten weitergegeben und bleibt nach der Rückkehr erhalten, auch wenn im gerufenen Programm die Zuordnung zwischenzeitlich geändert wurde. Gleichzeitig können höchstens .. eine Protokolldatei, .. eine Eingabedatei und .. eine Ausgabedatei zugeordnet sein.[HR][/HR] Zeile {0-80}Zeichen Modul Programm0 {0-31}Programm Programm0 1.Zeile mit Mod[({1-4}Par)] [ {0-1}Kommentar] 2.Zeile mit {0-16}Anweisung Programm 1.Zeile mit Prog [ {0-1}Kommentar] 2.Zeile mit {0-16}Anweisung ---------- Anweisung Anw | Anw2 Anw .. Bedingung, wenn W(1) .... ( {2-3}(W ) {0-8}Anw2) .. Wiederholung, solange W(1) .... (_ {2-3}(W ) {0-8}Anw2) Anw2 .. Aufruf .Mod[({1-}Par)] | Prog[({1-4}Par)] .. Zuweisung Var= [+|-] W [+|-|´/´|´*´ W] .. Datei .... D0=d Datei löschen .... D@=d Protokolldatei zuordnen .... D_=d Ausgabedatei zuordnen .... _D=d Eingabedatei zuordnen .... Var@ Variable nach Protokolldatei weiterschreiben .... Var_ Variable nach Ausgabedatei weiterschreiben .... _Var Variable von Eingabedatei lesen ---------- Mod=a[{1-}an] Modulname Prog=a[{1-3}an] Programmname Par=Kon|[.]Var W=Kon|Var Kon={1-32}k Var=a[(W[-W])] an:=a | 0-9 alphanumerisches Zeichen a:=A-z alphabetisches Zeichen d=a[{0-}k] für Dateinamen zugelassene Zeichen k abdruckbare Zeichen, ein = , leer = [HR][/HR] Beispiele #5 sum #7 sort #1 Zuordnung, logische Operation, Datei bearbeiten #14 Dateizugriffe, Indexdatei #5 indizierte Variable Übersetzer #7 leere Eingabe #4 #15 Syntax prüfen Laufzeitsystem #21 Modulbeginn #4 L1(.a) #14 #19 Dateien schliessen #20 vorzeitiges Programmende, .... zusätzlich Protokoll ...... mit Adresse der nicht mehr durchgeführten Anweisung der Maschinensprache ...... und einer Darstellung des letzten Programmes in Maschinensprache.

Beitrag von ruf012

#22 Zuweisung Var= W [+|-|´/´|´*´ W] Wegen a=0-a entfallen die vorlaufenden Vorzeichen.

Beitrag von ruf012

#20 Zusätzlich. Das vorzeitig beendete Programm in Maschinensprache, mit den adressierten Konstanten und Variablennamen. p1 a=1 b=0 a=a/b 01 2000 5008 a 1 01 2004 5000 b 0 04 2000 2004 b a ------------------------ Division durch Null. p1 vorzeitig beendet.

Beitrag von ToBeFree

Ergibt die Gleitkommadivision nicht Unendlich? Unterscheidet die Programmiersprache zwischen verschiedenen Zahlentypen, bzw. was ergibt "3/2"?

Beitrag von ruf012

#22 (... von Var=a[( W[-W] )] ... ) nach Var=a[(an[+|-|_an])] a=ijmn b=2 ................ c c=a(b) ...... j c=a(b+1) ... m c=a(b-1) ... i c=a(b_3) ... jmn [HR][/HR] #24 Ebenso ( ) (_ ) bei Bedingung und Wiederholung mit den seit dem letzten Klammernbeginn abgearbeiteten Anweisungen.[HR][/HR] #25 Ein Division durch Null gilt als undefiniertes Ergebnis, bewirkt damit ein vorzeitiges Ende des Programmes. Zahlen werden so dargestellt, wie sie eingegeben werden, oder aus einer Zuweisung entstehen. Indizierungen der abdruckbaren Darstellung sind möglich. Auch Umwandlungen zwischen abdruckbar und binär. p0 p1 p2 p3 p4 p1 a=1,000.000 T=a=+a T@ p2 b=3/2 T=b=+b T@ p3 c=4/2 T=c=+c T@ p4 d=b(3) T=d+d T@ Protokolldatei: a=1,000.000 b=1,5 c=2 d=5 ........ mögliche interne Darstellung von 1.5 a=3/2 (X00000001 C. X00000101) [HR][/HR] ................. intern a=12 ......... X00001100 a=+a ....... C12 a=0+a ...... C012 a=0+a........ X00001100

Beitrag von ruf012

Aufruf aus einer Fremdsprache Eingabe von Datei Fremdsprache up1 P1=C1234567890123456789012345678901234567890 P2=X00001010 Call up2(P1,P2) up2 C1=P1+char(P2) Open Datei1 Write C1 to Datei1 Close Datei1 Call e1 Open Datei1 Read C1 from Datei1 Close Datei1 P1=C1(1 to 40) P2=num(C1(41 to 45)) Datei1 123456789012345678901234567890123456789000010[HR][/HR] e1 _D=Datei1 _T ......... C12345678901234567890123456789012 ............................ C3456789000010 p(1)=T(1) .............. C12345678901234567890123456789012 a=T(2) .................. C3456789000010 p(2)=a(1_8) ........... C34567890 p(3)=0+a(9_5) ........ X00001010

Beitrag von ruf012

Umwandlung abdruckbar, binär a=12 ..... X00001100 a=‘‘+a ..... C12 a=0+a ..... X00001100 b=0-a b=‘‘+b ..... C‘-12‘ c=‘AC‘-‘AB‘ ..... X‘00000001‘ Vergleichen (0 a 2 T=‘a=1‘ T@) A=‘ABCD‘ B=‘ACDE‘ a=0-1 b=B-A (a b 1 T=‘A=B‘ T@) #22_ Ergänzung Dateien enthalten jeweils einen Modul, erstellt mit einem einfachen Editor, ohne Kopieren und Suchen. Kon={1-32}k|{1-10}z an=a|z alphanumerisches Zeichen z=0-9 Ziffer

Beitrag von ruf012

#18 Bearbeiter erstellt Themen, ändert, löscht, bearbeitet namenlose Beiträge von Gast(i). Anfangsbild B0 --------------- 00 01 02-07 11 12-17 22 23-27 33 34-37 44 45-47 55 56 57 66 67 77 DSLT Umwandlung erkennbar z Zusatz b Beitrag schreiben e Ende --------------- 01 weiter zu B0.01e B0.01 --------------- Eintrag -D Eintrag -S Eintrag -L Eintrag -T e --------------- -T Bearbeiter, Gast(i) liest Eintrag -T B0.01 --------------- Eintrag -D Eintrag -S Eintrag -L Eintrag -T e --------------- e zurück zu B0 B0.z Zusatz --------------- Eintrag Geschichten Eintrag Programmiersprache Eintrag dao e --------------- B0.b ------------------- begrenzte Texteingabe von Gast e ------------------ e Text wird weitergeleitet nach Bearbeiter.