Proč je syntaxe programovacích jazyků tak složitá?

Re:Proc je syntaxe programovacich jazyku tak slozita ?
« Odpověď #15 kdy: 22. 12. 2018, 23:48:36 »
Pokud tě zaráží syntaxe, tak počkej na to, až se potkáš se sémantikou ;-),
+100 :)

(zvlast pokud tim nemyslime neformalni "co to dela", ale formalni "semantiku programovacich jazyku" - to je teprve brainfuck :) )

mi prijde ze by to snad mohlo jit zjednodusit aby se to lip pamatovalo ?

treba by stacilo rozsirit seznam vyhrazenych slov nejlepe odpovidajicich beznemu lidskemu mysleni (v anglictine)
To je nahodou moc hezky tema. Minimalne proto, ze kdyz ty jazyky a zpusob jejich konstrukce zacne clovek reflektovat, dozvi se spoustu zajimavych veci nejenom o nich, ale i o sobe ;)

Hele, umel bys vymyslet ciste hypoteticky priklad, jak by takovy jazyk mel zhruba vypadat? Vylozene vyfabulovat kus kodu? Ale z nejake realne domeny - treba zkus ukazat, jak by mohl vypadat treba takovy autentizacni handler pro http request (tj. v normalnim jazyce funkce, ktera se zavola, kdyz prijde http request, zkontroluje nejake autentizacni udaje a povoli nebo zamitne dalsi zpracovani).


M.V.

Re:Proc je syntaxe programovacich jazyku tak slozita ?
« Odpověď #16 kdy: 23. 12. 2018, 00:07:22 »
Pane, videli uz kod v Perl ?  8)

Jenda

Re:Proc je syntaxe programovacich jazyku tak slozita ?
« Odpověď #17 kdy: 23. 12. 2018, 01:40:29 »
jeste jsem zapomnel na !, /, \, -, --, ++,  _, __ atd ... kdo si to ma pamatovat kdy jak se ktery znak pouziva k obvyklemu vyjadreni instrukci ktere vice mene pouziva kazdy programovaci jazyk
Protože pamatovat si (a psát!), že ++ je inc (nebo incr? nebo increment?), / je float_division (nebo real_division?), \ je escape atd. je ještě horší?

Srsly, zrovna tohle jsou věci, které při potkání nového programovacího jazyku typicky řeším tak prvních pět minut…

Trollopata

Re:Proc je syntaxe programovacich jazyku tak slozita ?
« Odpověď #18 kdy: 23. 12. 2018, 02:56:18 »
COBOL, to bol! Terazky som javistou!

Neviditelný

Re:Proc je syntaxe programovacich jazyku tak slozita ?
« Odpověď #19 kdy: 23. 12. 2018, 04:03:15 »
proste ta kombinace vsech moznych zavorek, slozenych zavorek, hranatych zavorek, odsazeni, stredniku, dvojtecek, rovna se, dvojite rovna, plusek, dvojitych plusek, minusek, tecek, ˜, ', ", @ # $ % & * ?   atd .. mi prijde ze by to snad mohlo jit zjednodusit aby se to lip pamatovalo ?
Syntaxe většiny smysluplných jazyků je podle mě dosti minimalistiská. Jednoduše se pamatuje, kontroluje a překládá do strojově stravitelné podoby.

treba by stacilo rozsirit seznam vyhrazenych slov nejlepe odpovidajicich beznemu lidskemu mysleni (v anglictine)
Napadá mě hned několik důvodů, proč by to nejspíš dopadlo úplně jinak, než si myslíš. Lidský mozek je schopný chápat instrukce na výrazně vyšší úrovni než stroj. Dokud nedojde k výraznému posunu v této oblasti, Star-Trekoidí programovací jazyk operující ve stylu "Počítači, zobraz předpokládaný stav asteroidového pole 39 sekund po explozi fotonového torpéda" jen tak nepůjde. Pouhé nahrazení symbolických operátorů slovy mnoho nepomůže, něco jako:

Kód: [Vybrat]
moje_pole = nové pole celých čísel o velikosti 65
proveď pro x v rozsahu 0 až velikost(moje_pole) - 1:
    nastav prvek x z moje_pole na (x + 1) * 2

mi fakt nepřijde čitelnější než toto

Kód: [Vybrat]
auto vec = std::vector<int>(65);
for (int idx = 0; idx < vec.size(); idx++)
    vec[idx] = (idx + 1) * 2;

Čím více klíčových slov bude jazyk používat, tím méně jich zbyde programátorovi a pojmenovávání vlastních objektů. Největší problém začínajících programátorů je naučit se přemýšlet jako stroj a s tím sebelidštější syntaxe nepomůže.


Lojza

  • *****
  • 672
    • Zobrazit profil
    • E-mail
Re:Proc je syntaxe programovacich jazyku tak slozita ?
« Odpověď #20 kdy: 23. 12. 2018, 06:06:21 »
Pokud tě zaráží syntaxe, tak počkej na to, až se potkáš se sémantikou ;-),
+100 :)

(zvlast pokud tim nemyslime neformalni "co to dela", ale formalni "semantiku programovacich jazyku" - to je teprve brainfuck :) )

mi prijde ze by to snad mohlo jit zjednodusit aby se to lip pamatovalo ?

treba by stacilo rozsirit seznam vyhrazenych slov nejlepe odpovidajicich beznemu lidskemu mysleni (v anglictine)


Hele, umel bys vymyslet ciste hypoteticky priklad, jak by takovy jazyk mel zhruba vypadat? Vylozene vyfabulovat kus kodu? Ale z nejake realne domeny - treba zkus ukazat, jak by mohl vypadat treba takovy autentizacni handler pro http request (tj. v normalnim jazyce funkce, ktera se zavola, kdyz prijde http request, zkontroluje nejake autentizacni udaje a povoli nebo zamitne dalsi zpracovani).

mne se treba libi co pise Neviditelny nizeji

moje_pole = nové pole celých čísel o velikosti 65
proveď pro x v rozsahu 0 až velikost(moje_pole) - 1:
    nastav prvek x z moje_pole na (x + 1) * 2


akorat bych to nechal v anglictine a ta vyhrazena slova by byla nejspis zkracena

je to jen takovy povzdech proletl jsem par jazyku ale asi to jinak nejde, to srovnani s formalnim zapisem v matematice ma neco do sebe, i kdyz tam tech znaku se nepouziva na jednom miste tolik

dfasdfasdf

Re:Proc je syntaxe programovacich jazyku tak slozita ?
« Odpověď #21 kdy: 23. 12. 2018, 07:18:58 »

Syntaxe většiny smysluplných jazyků je podle mě dosti minimalistiská. Jednoduše se pamatuje, kontroluje a překládá do strojově stravitelné podoby.


Tohle je podle me dulezite, drive programatori znali i streva a assembler, byli bliz stroji a nestezovali si na syntaxi.
Dneska chce programovat leckdo i ten kdo ma problem se syntaxi.

Radovan.

Re:Proc je syntaxe programovacich jazyku tak slozita ?
« Odpověď #22 kdy: 23. 12. 2018, 08:25:30 »
moje_pole = nové pole celých čísel o velikosti 65
proveď pro x v rozsahu 0 až velikost(moje_pole) - 1:
    nastav prvek x z moje_pole na (x + 1) * 2

akorat bych to nechal v anglictine a ta vyhrazena slova by byla nejspis zkracena

COBOL: https://www.root.cz/clanky/programovani-mainframu-cobol/

Kód: [Vybrat]
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  Num1                                PIC 9  VALUE ZEROS.
       01  Num2                                PIC 9  VALUE ZEROS.
       01  Result                              PIC 99 VALUE ZEROS.

       PROCEDURE DIVISION.
       DISPLAY "Enter first number  (1 digit) : " WITH NO ADVANCING.
       ACCEPT Num1.
       DISPLAY "Enter second number (1 digit) : " WITH NO ADVANCING.
       ACCEPT Num2.
       MULTIPLY Num1 BY Num2 GIVING Result.
       DISPLAY "Result is = ", Result.

A když ta vyhrazená slova začneš zkracovat, dojdeš nakonec ke zkratkovité syntaxi dnešních programovacích jazyků ;)

Trupik

Re:Proc je syntaxe programovacich jazyku tak slozita ?
« Odpověď #23 kdy: 23. 12. 2018, 09:40:13 »
Jedna stará programátorská pravda hovorí, že ak umožníš programátorom programovať v slovenčine (češtine, angličtine, ...), zistíš, že nevedia po slovensky (česky, anglicky, ...).

Kit

Re:Proc je syntaxe programovacich jazyku tak slozita ?
« Odpověď #24 kdy: 23. 12. 2018, 10:01:16 »
akorat bych to nechal v anglictine a ta vyhrazena slova by byla nejspis zkracena

Zkracování slov rozhodně nevede k čitelnějšímu kódu. Co třeba SQL, vyhovuje?

RDa

  • *****
  • 2 570
    • Zobrazit profil
    • E-mail
Re:Proc je syntaxe programovacich jazyku tak slozita ?
« Odpověď #25 kdy: 23. 12. 2018, 10:07:56 »
Ja tedy mel na diplomku praci "Semanticke programovani", kde jsem resil ze syntaxe programovacich jazyku je vlastne zcela zbytecna, protoze programy se skladaji z tech samych zakladnich bloku, jako univerzalni transport jsem mel XML, resp. svoji xml databazi, jez mela alternativni automaticky generovane roviny podle vystupniho jazyka (C, PHP, JS a Pascal). Bylo to omezeno z casovych/praktickych duvodu na funkcionalni programovani.

K praktickemu uzitku ve styku s lidma tomu jen chybi interface do hlavy, at se ty myslenky ctou rovnou do xml, kdyz jse nekdo linej se vyjadrit v nektere z bezne uzivanych syntaxi (aka programovacich jazyku) :)

asdsdf

Re:Proc je syntaxe programovacich jazyku tak slozita ?
« Odpověď #26 kdy: 23. 12. 2018, 10:09:57 »
moje_pole = nové pole celých čísel o velikosti 65
proveď pro x v rozsahu 0 až velikost(moje_pole) - 1:
    nastav prvek x z moje_pole na (x + 1) * 2

akorat bych to nechal v anglictine a ta vyhrazena slova by byla nejspis zkracena
Rozhodne je lepsie naucit sa skratene vyrazy. V takejto podobe (aj v anglictine) je to zle citatelne a zdlhavejsie na pisanie.

A kamo logicke chyby su daleko horsie ako syntakticke, navyse mozu byt dobre skryte a prejavia sa az v ostrej prevadzke po nejakom case. Jeden prepocet co som robil prestal fungovat po 1,5 roku pouzivania. Spoliehal sa totiz na jednu vec, ktora v drvivej vacsine pripadov bola splnena, ale vtedy nie.

Lojza

  • *****
  • 672
    • Zobrazit profil
    • E-mail
Re:Proc je syntaxe programovacich jazyku tak slozita ?
« Odpověď #27 kdy: 23. 12. 2018, 10:15:57 »
sql syntaxe vypada jednoduseji, ale ta slozitost je skryta za tou syntaxi ? (semantika ?), navic sql byl neradil k plnotucnym programovacim jazykum, dela jen cast - prace s databazemi ?


ale treba ten small basic


http://download.microsoft.com/download/9/0/6/90616372-C4BF-4628-BC82-BD709635220D/Introducing%20Small%20Basic.pdf


vim je to osekana verze basicu ale stejne pripada mi ze nekdo se snazil tu syntaxi zjednodusit


to same mi pripada u smalltalku


LISP si nejsem jistej jestli bych se neuzavorkoval (musel bych mit neco co mi bude hlidat spravny pocet ()

JSH

Re:Proc je syntaxe programovacich jazyku tak slozita ?
« Odpověď #28 kdy: 23. 12. 2018, 10:32:37 »
mne se treba libi co pise Neviditelny nizeji

moje_pole = nové pole celých čísel o velikosti 65
proveď pro x v rozsahu 0 až velikost(moje_pole) - 1:
    nastav prvek x z moje_pole na (x + 1) * 2
Mno myslím, že to začíná být podobně vágní jako běžný jazyk. Jaké celé číslo? Jaký má mít rozsah nebo kolik bitů? Jak tam přibudou tyhle věci, tak to bude chtít typedef na nějaké lepší jméno ( třeba int32 :) ) jinak se důležitá informace ztratí v hromadě textu.

A myslím že si dokážu představit první zpětnou vazbu. "Nešlo by to přistupování k prvkům pole nějak zkrátit? Tohle děláme furt dokola a psát to je strašný opruz. Co třeba hranaté závorky, když to takhle dělá kdekdo? To přece pochopí každý." :D

Citace
akorat bych to nechal v anglictine a ta vyhrazena slova by byla nejspis zkracena
Takže to špatné z obou světů. Univerzálně používaných zkratek až tolik není. Takže se v tom bez učení nováček stejně nevyzná. Akorát budou ty zkratky splývat se jmény proměnných a metod.
Citace
je to jen takovy povzdech proletl jsem par jazyku ale asi to jinak nejde, to srovnani s formalnim zapisem v matematice ma neco do sebe, i kdyz tam tech znaku se nepouziva na jednom miste tolik
Tak samo, všichni si chceme ušetřit práci. Akorát to občas není až tak jednoduché. :)

Re:Proc je syntaxe programovacich jazyku tak slozita ?
« Odpověď #29 kdy: 23. 12. 2018, 10:36:42 »
Nevím jak vy, ale syntaxe jazyka mi nedělá zas az takový problém, vždycky se dá vytisknout cheatsheet, ale kde se bezpečné ztracim je chaos v rozlišení vlastních funkci, proměnných, tříd a procedur. A to zejména když luštim cizí kód...
Gréta je nejlepší.