Italia
Befehlssatz und Aiuto

§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 circa weitere Zeilen.
//Beispiele per 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 possibile, eine Anweisung circa 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 potrebbe alle Möglichkeiten bieten die Wünschenswert sind.

Die XProfan'sche Schreibweise per 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 supportati. 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
n 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 per
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

potrebbe 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 potuto
durch Festlegungen von Wertigkeiten von Schlüsselworten oder Aussagen.

Solange das Ganze ohne Einschränkungen im Bezug auf die solito
Konventionen geschehen kann, potrebbe 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 per 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 per 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 per 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 per 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.

Saluto
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 per 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  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

22.873 Views

Untitledvor 0 min.
Swissmade06.09.2024
p.specht21.04.2019
Micha1233406.08.2017
funkheld20.04.2017
Di più...

Themeninformationen

Dieses Thema hat 4 subscriber:

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


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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