Deutsch
Befehlssatz und Hilfe

§10 - Syntax

 
§10 - Syntax

Die Syntax ist bewusst auf Praktikabilität getrimmt.

Zeilen-Enden und Semikolon trennen Befehle, ausgenommen eine Klammerung oder String-Konstante ragt über weitere Zeilen.
//Beispiele für zeilenweises- und zeilenübergreifendes Schreiben:
print "Dies ist
ein Text mit einer
Stringkonstante mit
Zeilenumbrüchen"
print "Dies ist\nein Text mit einer \nStringkonstante mit\nZeilenumbrüchen."
print 10+20;print 30+40
print 10+20
print 30+40
print (10
+20
+30)
print (10+20+30)

Befehle und Funktionen können als Befehl oder Funktion formuliert werden, z.B. print 123 oder print(123).

Variablensyntax:
a=10
a=10,b=10
a=10 b=10

Arrays (und Assoziative):
a[0]=10
a.0=10
//
a["test"]["test"]=10
a.test.test=10
//
b=[10,20,30]
//
c=["Hallo"=10,"Welt"=["pt2"=20,"pt3"=30]]
 
18.01.2015  
 



Neu und besser erklärt:

iF (18.01.15)
Zeilen-Enden - aber auch das Semikolon - trennen Befehle. Somit können mehrere Anweisungen auch innerhalb einer Zeile geschrieben werden, und, man muss das Semikolon nicht setzen wenn man zeilenweises Schreiben bevorzugt. Zudem ist es aber auch möglich, eine Anweisung über mehrere Zeilen zu verteilen, einfach in dem man mit Klammern arbeitet ( die Normalen ( ) oder die Eckigen [ ] ) die erst in nachfolgenden Zeilen (wieder) geschlossen werden. Dieses Verfahren dürfte alle Möglichkeiten bieten die Wünschenswert sind.

Die XProfan'sche Schreibweise für zeilenübergreifendes Schreiben, indem vor dem Zeilenende ein Backslash angefügt wird, ist in InfinityProfan unnötig und zudem auch "falsch" und sie wird auch nicht unterstützt. Zeilenenden in InfinityProfan einfach per "Enter"-Zeichen setzen, ohne weitere Maßnahmen ergreifen zu müssen.
KompilierenMarkierenSeparieren
//Beispiele für zeilenweises und zeilenübergreifendes Schreiben:
print "Dies ist
ein Text mit einer
Stringkonstante mit
Zeilenumbrüchen"
// ist das Selbe wie:
print "Dies ist\nein Text mit einer \nStringkonstante mit\nZeilenumbrüchen".
//
print 10+20;print 30+40
// ist das Selbe wie:
print 10+20
print 30+40
//
print (10
+20
+30)
// ist das Selbe wie:
print (10+20+30)
// nicht funktionieren würde jedoch:
print 10
+20
+30
// weil hier keine Klammer über die weiteren Zeilen zwingt.

Befehle können als Befehl oder Funktion formuliert werden, z.B. print 123 oder print(123);
 
12.05.2015  
 




HofK
Fein, damit geht so ein Schachtelfeld echt übersichtlich:
KompilierenMarkierenSeparieren
//	Name,          essbar,	 Wochentag, Anzahl  (3x)
var freieNatur =[
["Ameise",            false,   ["Mo",1001,"Mi",0,"Sa",2000 ]  ],
["Taube",               true,    ["Mo",      2,"Mi",2,"Sa",     1 ]  ],
["Feldmaus",         false,   ["Mo",      1,"Mi",2,"Sa",     0 ]  ],
]
 
12.05.2015  
 



Neu: Intern genannt "Space-Operator":

Klaus Hoffmeister (16.05.15)
Das Leerzeichen, der Space Operator ist ein intelligenter Space Seperator, ein intelligenter Trenner, ein Space-Autoseparator kurz ein Autoseparator, ein polymorpher Seperator, damit noch etwas polymorphes bei InfinityProfan.


Generell einfachere Syntax für
Schreibfaule dank sehr nachdenklichem Präkompilierer:

Tragweitenbeispiele:
print rgb 10 20 30

wird kompiliert zu:
print(rgb(10,20,30))

oder:

wird kompiliert zu:

Der (Prä)Kompilierer nimmt einem also viel Schreibarbeit ab durch
Erkennung ob etwas als Funktion oder Funktionsparameter zu verstehen
ist und ergänzt den Quelltext selbständig.

Statt:
return  a + " = " + str(sqrt(a*a+b*b))
//einfach:
return  a + " = " + str sqrt a*a+b*b

schreiben, kann aber nochmal optimiert werden zu:
return  a + " = " + sqrt a*a+b*b

da String+Float = String ist.
 
14.05.2015  
 




RGH
Ob die Programme dadurch wirklich lesbarer werden ...
 
XProfan X2
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
14.05.2015  
 



Schauen wir doch mal.

Scheint aber natürlicher zu sein als das Übliche:

display rotate left
objekt verb adjektiv

dürfte der Mensch besser lesen können als display(rotate,left).

Dagegen gekruxel: display klammer auf rotate komma left klammer zu
Dagegen gekruxel: display ( rotate , left )

ebenso später mgl.:
rotate display left
oder
left rotate display

Da ich sowas wie eine weitere Dimension der Betrachtung der
Schlüsselworte andenke, quasi sowas wie "Rotate"... ja was? oder
"left"... ja was? Der Präkompilierer das "ja was?" beantworten könnte
durch Festlegungen von Wertigkeiten von Schlüsselworten oder Aussagen.

Solange das Ganze ohne Einschränkungen im Bezug auf die üblichen
Konventionen geschehen kann, dürfte es als Zugewinn empfohlen
und aber auch empfunden werden so einen kleinen Hauch in die
Richtung wie Programmiersprachen vielleicht einmal werden könnten,
wenn wir denn endlich Quantenrechner zu hause haben.

Nach dem Motto "Der versteht schon, solange es anders kaum Sinn ergibt."

Vielleicht sollte man der Sache mal eine Chance geben.
 
14.05.2015  
 




HofK
RGH (14.05.15)
Ob die Programme dadurch wirklich lesbarer werden ...


Die einfachere Syntax für Schreibfaule dank sehr nachdenklichem Präkompilierer kann durchaus zugleich bequemer und übersichtlicher sein, wenn man die leicht mehrfach zu schreibenden Leerzeichen mit einer nichtproportionalen Schrift (z.B. Courier New) kombiniert. In der Online IDE ist das dann noch mit den Farben perfekt, hier in der Codebox schon ungünstiger und in der vereinfachten mobilen Version kann man momentan sehen, wie es eventuell noch ungünstiger ist.

Man erkennt das auch bei herkömmlichem Kode.
Mein obiges Schachtelfeld var freieNatur = [ ... hatte ich für die Codebox mit Proportionalschrift extra "optimiert", mobil ist es in der bewusst vereinfachten Box logischerweise dann keineswegs übersichtlich und nach kopieren in die Online IDE sieht man, wie ich mit den Leerzeichen jongliert habe.

Gibt der nachdenkliche Präkompilierer das Ergebnis seines "Denkprozesses" eigentlich lesbar an den Menschen heraus? Etwa sogar bearbeitbar?
 
15.05.2015  
 



Das Ergebnis des Präkompilierers ist für Menschen kaum lesbar
aufbereitet, hm.
 
15.05.2015  
 




GDL
Hallöle,

ich habe das immer noch nicht kapiert.
Man setzt ja extra Klammern wegen der Punkt vor Strich Regel.

(1+3)*2 =8
1+(3*2)=7

Nach was für einem Grundschema wird nun gerechnet, wenn man 1+3*2 eingibt ?

Grüßle
Georg
 
XProfan X3
Windows7 Xprofan 8,9,10 [...]  [...] 
31.05.2015  
 




RGH
Normalerweise geht Punktrechnung vor Strichrechnung, also müsste hier 7 herauskommen. Das ist zumindest in allen mir bekannten Programmiersprachen so.

Gruß
Roland
 
XProfan X2
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
31.05.2015  
 




GDL
Hallöle,

Ok. Das heisst, wenn man (1+3)*2 eingibt, bleibt die Anweisung in der Klammer erhalten oder muss man 2 Programmschritte machen?
a=1+3
a=a*2

Ist zwar Offtopic, war aber für mich wichtig zu wissen bei den ganzen Vereinfachungen in der Syntax.

Grüßle
Georg
 
XProfan X3
Windows7 Xprofan 8,9,10 [...]  [...] 
31.05.2015  
 



Würde ich auch nicht anders programmieren,
jedenfalls funktionieren nProcs und InfinityProfan genau so.

Es gibt halt Prioritäten:

Klammern
Punktrechnung
Strichrechnung
Vergleiche

So ist die Abarbeitung klar: 10+(20-10)*30=40

20-10
10*30
10+300
310=40
false
 
31.05.2015  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

21.902 Betrachtungen

Unbenanntvor 0 min.
p.specht21.04.2019
Micha1233406.08.2017
funkheld20.04.2017
Lender11.06.2016
Mehr...

Themeninformationen

Dieses Thema hat 4 Teilnehmer:

iF (7x)
HofK (6x)
GDL (2x)
RGH (2x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie