Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 29

Thema: kleine programmiersprache e

  1. #1
    Deaktiviert Errungenschaften:
    Veteran5000 Experience PointsOverdrive
    Avatar von ruf012
    Registriert seit
    12.08.2011
    Beiträge
    533

    kleine programmiersprache e

    ' ' 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)<Konvari(2)(<Konvari(3)) dann Anweisung durchführen.
    '(_'{2-3}Konvari{0-n} Anweisung')' .....Wiederholung, solange Konvari(1)<Konvari(2)(<Konvari(3)) Anweisung durchführen.

    '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.






    Beispiele


    Programmaufruf
    p0
    pppp()
    .P1234567(´´ ´e´ .A 4) .....anderer Modul

    Zuordnung
    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 K

    k1 logische Operation

    k1k(A B e) wenn A<B dann e:=1
    e=0 (A B e=1)

    k1kh(A B e) wenn A<=B dann e:=1
    e=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 Operation

    k2k Datei kopieren, Eingabedatei nach Ausgabedatei
    _A(_´´AA__A)


    k2dl(A a) A direkt von Eingabedatei lesen, Index A(1-a)
    k2d1 k2d2

    k2d1 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=C


    k2ds(A a) A direkt nach Ausgabedatei schreiben, Index A(1-a)
    B=A(1-a) k2d4 k2d5 k2d6

    k2d4 Satz kopieren, Index < A(1-a)
    _C(_´´ C(1-a) B C__C)

    k2d5 Schreiben A
    A_(B C(1-a) C_)

    k2d6 Satz kopieren A(1-a) < Index
    _C(_´´ C C__C)


    k2dp(A) ab Prefixnummer A aufsteigend um 1
    _B(_´´B B=AB B_ A=A+1 _B)




    ----
    Datei p

    p1 wenn (C<D) rufen Externprogramm P00
    .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)
    Geändert von ruf012 (04.06.2015 um 14:11 Uhr)

  2. #2
    Linux-Enthusiast
    Punkte: 47.091, Level: 100
    Level beendet: 0%, Punkte für Levelaufstieg benötigt: 0
    Aktivität: 100,0%
    Errungenschaften:
    Your first GroupThree FriendsCreated Album picturesTagger First ClassVeteran
    Auszeichnungen:
    Community AwardDownloadsArm of LawMaster TaggerActivity Award
    Avatar von ToBeFree
    Registriert seit
    05.08.2011
    Ort
    Wuppertal, NRW
    Rating
    1413 - 29
    Verein
    SC Tornado Wuppertal 1991
    Beiträge
    1.188
    Punkte
    47.091
    Level
    100

    AW: kleine programmiersprache e

    Kennst du Piet?
    http://musescore.com/tobefree

    Zitat Zitat von derair
    also ich hab jetztd en internet explorer 9 und der ist toll
    der ist viel übersichtliger geworden und íst viel besser als fire fox
    "Alle aussteigen, wir klauen jetzt einen A380."

  3. #3
    Deaktiviert Errungenschaften:
    Veteran5000 Experience PointsOverdrive
    Themenstarter
    Avatar von ruf012
    Registriert seit
    12.08.2011
    Beiträge
    533

    AW: kleine programmiersprache e

    Das sehe ich zum ersten Mal.
    Die Darstellung mag optisch abwechslungsreich sein, aber für umfangreiche Aufgaben füllen sich die Datenträger.
    Geändert von ruf012 (19.06.2015 um 09:42 Uhr)

  4. #4
    Deaktiviert Errungenschaften:
    Veteran5000 Experience PointsOverdrive
    Themenstarter
    Avatar von ruf012
    Registriert seit
    12.08.2011
    Beiträge
    533

    AW: kleine programmiersprache e

    e versucht mit wenig Sprachelementen und Text auszukommen.

    Einfacher Editor erstellt Programmdateien.




    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)




    Testen mit Protokolldatei.

    p1
    t='p1 startet' t@ a=1 t='a='.a t@ t='p1 Ende' t@

    Protokoll:
    'p1 startet'
    'a=1'
    'p1 Ende'





    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.
    Geändert von ruf012 (19.06.2015 um 10:00 Uhr)

  5. #5
    Deaktiviert Errungenschaften:
    Veteran5000 Experience PointsOverdrive
    Themenstarter
    Avatar von ruf012
    Registriert seit
    12.08.2011
    Beiträge
    533

    AW: kleine programmiersprache e

    Laufzeitsystem nach Protokolldatei

    p1() .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
    ....................|


    Gleichheit
    p1 if A=B then p4 end
    p2 e=A-B (-1 e 1 p4)

    p2
    A=11 B=52


    --
    p1 if A=B then p4 end
    p2 e=A-B (d e f p4)

    p2 f=1 binär, d=-1 binär
    A='a' B='ab' f='B'-'A' d=-f



    indizierte Variable

    p0
    p1 p2 p3 p4 p5 p6 p7

    p1
    A(1)=27 A(2)='abc' B(1)=A

    p2
    A(1)=21 A(2)='abcd' B(2)=A

    p3
    C(1)=B

    p4
    A(1)=15 A(2)='c' B(1)=A

    p5
    A(1)=57 A(2)='cd' B(2)=A

    p6
    C(2)=B C(7)='x' C(5)=9

    p7
    D=C






    Beispiele.

    p1(n .m) m-Summe der Zahlen von 1..n
    i=1 m=1 (_1 n i=i+1 m=m+i)

    Umwandlung dezimal-binaer 21:20 09.06.2015
    http://www.onlinemathe.de/forum/Waru...die-Binaerzahl


    Zahlenfolge 16:41 07.06.2015
    http://www.onlinemathe.de/forum/zahlenfolgen-77
    Geändert von ruf012 (04.07.2015 um 21:35 Uhr)

  6. #6
    Deaktiviert Errungenschaften:
    Veteran5000 Experience PointsOverdrive
    Themenstarter
    Avatar von ruf012
    Registriert seit
    12.08.2011
    Beiträge
    533

    AW: kleine programmiersprache e

    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=<Schule>
    b=<Lehren>
    c=<Klasse>
    d=<Name>
    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
    Geändert von ruf012 (09.07.2015 um 21:56 Uhr)

  7. #7
    Deaktiviert Errungenschaften:
    Veteran5000 Experience PointsOverdrive
    Themenstarter
    Avatar von ruf012
    Registriert seit
    12.08.2011
    Beiträge
    533

    AW: kleine programmiersprache e

    #1

    Modifikation, keine geschachtelte Bedingung und Wiederholung

    Anweisung:=
    Anweisung2
    | '('{2-3}Konvari{0-n}Anweisung2')' Bedingung, wenn Konvari(1)<Konvari(2)[<Konvari(3)] dann Anweisung2 durchführen.
    | '(_'{2-3}Konvari{0-n}Anweisung2')' Wiederholung, solange Konvari(1)<Konvari(2)[<Konvari(3)] Anweisung2 durchführen.

    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] Zuweisung


    Liest der Übersetzer eine leere Datei,
    gibt er die gesamte Syntaxbeschreibung aus,
    mit einigen Programmbeispielen.



    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) p4

    p2
    i=i+1 (B A(i) a=i-1 i=n)

    p4
    C=A(a) (B C a=0) (C B a=0)
    Geändert von ruf012 (18.07.2015 um 09:44 Uhr)

  8. #8
    Linux-Enthusiast
    Punkte: 47.091, Level: 100
    Level beendet: 0%, Punkte für Levelaufstieg benötigt: 0
    Aktivität: 100,0%
    Errungenschaften:
    Your first GroupThree FriendsCreated Album picturesTagger First ClassVeteran
    Auszeichnungen:
    Community AwardDownloadsArm of LawMaster TaggerActivity Award
    Avatar von ToBeFree
    Registriert seit
    05.08.2011
    Ort
    Wuppertal, NRW
    Rating
    1413 - 29
    Verein
    SC Tornado Wuppertal 1991
    Beiträge
    1.188
    Punkte
    47.091
    Level
    100

    AW: kleine programmiersprache e

    #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.^^
    http://musescore.com/tobefree

    Zitat Zitat von derair
    also ich hab jetztd en internet explorer 9 und der ist toll
    der ist viel übersichtliger geworden und íst viel besser als fire fox
    "Alle aussteigen, wir klauen jetzt einen A380."

  9. #9
    Deaktiviert Errungenschaften:
    Veteran5000 Experience PointsOverdrive
    Themenstarter
    Avatar von ruf012
    Registriert seit
    12.08.2011
    Beiträge
    533

    AW: kleine programmiersprache e

    #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 auf
    und tippen für ihre Kundschaften die Noten ein.

    Pro Bediener hat Z samt Leitungen etwa eine halbe Stunde zur Verfügung zu stehen.






    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.
    Geändert von ruf012 (21.07.2015 um 12:12 Uhr)

  10. #10
    Deaktiviert Errungenschaften:
    Veteran5000 Experience PointsOverdrive
    Themenstarter
    Avatar von ruf012
    Registriert seit
    12.08.2011
    Beiträge
    533

    AW: kleine programmiersprache e

    #8 (#1 Syntax)
    Begründung für möglichst wenig Sprachelemente und Text


    Je 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.




    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.




    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.

  11. #11
    Deaktiviert Errungenschaften:
    Veteran5000 Experience PointsOverdrive
    Themenstarter
    Avatar von ruf012
    Registriert seit
    12.08.2011
    Beiträge
    533

    AW: kleine programmiersprache e

    #8 (#1 Syntax)
    Anwendung


    Anfä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.

  12. #12
    Deaktiviert Errungenschaften:
    Veteran5000 Experience PointsOverdrive
    Themenstarter
    Avatar von ruf012
    Registriert seit
    12.08.2011
    Beiträge
    533

    AW: kleine programmiersprache e

    #8 (#1 Syntax)
    Benutzer


    Wer 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 Sprachen
    wird 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.
    Geändert von ruf012 (22.07.2015 um 20:29 Uhr)

  13. #13
    Deaktiviert Errungenschaften:
    Veteran5000 Experience PointsOverdrive
    Themenstarter
    Avatar von ruf012
    Registriert seit
    12.08.2011
    Beiträge
    533

    AW: kleine programmiersprache e

    #8 (#1 Syntax)
    Eigenschaften



    Ein Programm erscheint mir robust,
    wenn es auf alle Situationen möglichst sinnvoll reagiert.

    Was ist die Robustheit einer Sprache.




    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.




    Ein Programm erscheint mir portabel,
    wenn es möglichst leicht
    auf verschiedene Betriebssysteme zum Ablauf gebracht werden kann.

    Was ist die Portabiliät einer Sprache.
    Dafür gibt es Übersetzer und Laufzeitsystem,
    weniger die Syntax.

  14. #14
    Deaktiviert Errungenschaften:
    Veteran5000 Experience PointsOverdrive
    Themenstarter
    Avatar von ruf012
    Registriert seit
    12.08.2011
    Beiträge
    533

    AW: kleine programmiersprache e

    Dateizugriffe
    Beispiele



    Ausgabedatei
    dat1 nicht vorhanden

    p1 fortsetzen
    D_=dat1 A='12' A_
    dat1
    '12'

    p1 fortsetzen
    D_=dat1 A='12' A_
    dat1
    '12'
    '12'

    --

    p1 neu schreiben
    D0=dat1 D_=dat1 A='123' A_
    dat1
    '123'

    p1 neu schreiben
    D0=dat1 D_=dat1 A='123' A_
    dat1
    '123'




    Indexdatei

    Mit dem Definieren einer Indexdatei
    steht im aktuellen Programm
    neben der Protokolldatei keine weitere Datei zu Verfügung.


    dat2 Index(1..8)
    Name1 123
    Name2 234
    Name7 721

    --

    p0 Indexdatei, sequentielles Lesen vom Anfang
    _D=dat2 A='' _A (_'' A A@ A='' _A)

    Protokolldatei
    Name1 123
    Name2 234
    Name7 721

    --

    p1 Indexdatei, sequentielles Lesen ab Index
    _D=dat2 A='Name2 ' _A (_'' A A@ A='' _A)

    Protokolldatei
    Name2 234
    Name7 721

    --

    dat2 Index(1..8)
    Name1 123
    Name2 234
    Name7 721

    p2 Indexdatei, Satz ändern
    _D=dat2 A='Name7 ' _A ('' A A@ A(10)='8' A_ A@)

    dat2 Index(1..8)
    Name1 123
    Name2 234
    Name7 781


    Protokolldatei
    Name7 721
    Name7 781

    --

    dat2 Index(1..8)
    Name1 123
    Name2 234
    Name7 781

    p4 Indexdatei, Satz löschen
    _D=dat2 A='Name2 ' _A ('' A A@ A=A(1-8) A_ A@)

    dat2 Index(1..8)
    Name1 123
    Name7 781


    Protokolldatei
    Name2 234
    Name2



    aktuelle Dateien schliessen
    D@=''
    _D=''
    D_=''
    Geändert von ruf012 (23.07.2015 um 20:13 Uhr)

  15. #15
    Deaktiviert Errungenschaften:
    Veteran5000 Experience PointsOverdrive
    Themenstarter
    Avatar von ruf012
    Registriert seit
    12.08.2011
    Beiträge
    533

    AW: kleine programmiersprache e

    p1(a .b) Programm

    Der Ü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 '.'





    Modul mit mehreren Programmen.
    Das erste Programm ist das einzige Eingangs- und Rückkehrprogramm.


    A-Adresse

    MA
    Ein Verzeichnis aller im Modul verwendeten Variablen,
    auf das jedes Programm im Modul adressieren kann.

    PA
    Für jedes Programm eigene Dateidefinitionen (D@ _D D_)
    und ebentuell Parameter.

    Beim Übersetzen erscheint ein Variablenname entweder in MA oder in (0..n)PA.





    modul1 ---------------------------------------

    p1
    a=1 p2

    p2
    a=2 b=2


    MA
    A(a)
    A(b)

    PA.p1
    A(0)
    A(0)
    A(0)

    PA.p2
    A(0)
    A(0)
    A(0)




    modul2 -----------------------------------

    p1
    D@=prot0 _D=d1 D_=d2 i=0 j=0 .modul4(i j)

    MA
    A(i)
    A(j)

    PA.p1
    Beim Start
    A(0)
    A(0)
    A(0)
    Vor Aufruf von modul4 und nach dessen Rückkehr
    A(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 p4

    p4
    D_=dat4 a=4



    MA
    A(a)

    PA.p1
    Beim Aufruf von p1
    A(prot0)
    A(d1)
    A(d2)
    A(i)
    A(j)
    Vor Aufruf von p2 und nach dessen Rückkehr
    A(prot4)
    A(dat10)
    A(dat11)
    A(i)
    A(j)

    PA.p2
    Beim Aufruf von p2
    A(prot4)
    A(dat10)
    A(dat11)
    A(i)
    A(j)
    a(1)
    Vor Aufruf von p4 und nach dessen Rückkehr
    A(prot4)
    A(dat2)
    A(dat11)
    a(i)
    A(j)
    A(1)
    Geändert von ruf012 (23.07.2015 um 08:17 Uhr)

Ähnliche Themen

  1. Kleine Veränderung: Guckt mal nach rechts ;)
    Von ToBeFree im Forum Neuigkeiten
    Antworten: 4
    Letzter Beitrag: 22.02.2016, 22:32
  2. Kleine Taktik-Asse züchten?
    Von hako im Forum Training
    Antworten: 8
    Letzter Beitrag: 04.09.2015, 12:14
  3. Lauter kleine Kätzchen
    Von Kiffing im Forum Burgschenke
    Antworten: 18
    Letzter Beitrag: 27.03.2014, 20:41

Stichworte

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
. . . .