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

Kit

Re:Proc je syntaxe programovacich jazyku tak slozita ?
« Odpověď #45 kdy: 23. 12. 2018, 12:06:43 »
Citace
Každý programovací jazyk tyto stavební bloky používat nemusí. Například v XSLT se obejdeš bez proměnných, cyklů a podmínek, i když v jeho syntaxi jsou.
jestli jsem to dobre pochopil https://cs.wikipedia.org/wiki/Extensible_Stylesheet_Language_Transformations
tak v xslt se nepise primo zdrojovy kod ale pouze transformace na jiny kod ? da se zjednodusene rici ze html, xml, xslt apod. jsou proste rodina "znackovacich jazyku" ?

XSLT je zdrojovým kódem. Vstupní data jsou v XML. Výstupní data už mohou být v jakémkoli formátu - XML, HTML, TXT, CSV, CSS, Javascript, Lisp, SQL, XSL-FO,...


armabeton

Re:Proc je syntaxe programovacich jazyku tak slozita ?
« Odpověď #46 kdy: 23. 12. 2018, 12:08:50 »
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 ... je to furt dokola prirazeni promenne, cykly, podminky, pole, datove typy, OOP atd ...

Odpovědí byl kdysi COBOL - taky si mysleli, že to dají jen s angličtinou, ale bylo z toho peklo.

JSH

Re:Proc je syntaxe programovacich jazyku tak slozita ?
« Odpověď #47 kdy: 23. 12. 2018, 12:45:58 »
coz se treba u Cecka, php, javascriptu ... se mi nikdy nepovedlo okamzite jsem se po par strankacj ztratil v syntaxi, jedine co mi doslo ze kazdy ? opravdovy programovaci jazyk v podstate se sklada z velmi podobnych stavenich bloku (promenne, cykly, podminky, oop..) akorat kazdy jazyk se k nim stavi ruzne, nektery z meho pohledu jednoduseji a jiny sloziteji (syntaxe)
Tady je těžké hádat. Cčko má své hodně těžké věci ale ty se neobevují na prvních stránkách. V začátcích je ta syntaxe Cčkoidních jazyků těm pascaloidním hodně podobná. Možná je trochu víc hustá, takže se pomaleji čte.

Jinak manuály nejsou obecně dobré pro začátečníky. Nejsou strukturované tak, aby se podle nich dalo učit. Ten tvůj odkaz na smallbasic byl spíš učebnice, než manuál. I když k učebnici, která na začátečníka vytáhne goto ještě před cykly, mám své výhrady. :)

nejhorsi je ze mi prijde slozite i "programovani" ve VBA for Applications pro Excel ... ale to se jeste budu pokouset zvladnout casem
Mám trochu dojem, že jsi ve fázi kdy ti dělá problém přejít od popisu problému v neformální "lidštině" do něčeho, co už připomíná algoritmus. Tahle fáze je těžká a navíc je dost nezávislá na jazyce. A jazyk, který ti nesedí, jen přidává další věci, na které musíš myslet. Ono se to poddá. Jen počítej s tím, že to chce čas a trénink. Přece jenom se snažíš přemýšlet hodně neintuitivním a nepřirozeným způsobem.

RDa

  • *****
  • 2 821
    • Zobrazit profil
    • E-mail
Re:Proc je syntaxe programovacich jazyku tak slozita ?
« Odpověď #48 kdy: 23. 12. 2018, 12:47:38 »
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.

Ten popis univerzálního transportu v XML mě zajímá. Dá se to někde najít?

Muzu ti poslat mailem, kdyz se ozves skrze tu obalku vlevo (PM). Ale necekej od toho nic primo pouzitelneho, jak na to koukam nektere konstrukce me prijdou ted hodne naivni :) V podstate to vzniklo v dobe kdy me bavili prekladace a ta forma programu ktera vznikne po rozparsovani zdrojaku.

Lojza

  • *****
  • 672
    • Zobrazit profil
    • E-mail
Re:Proc je syntaxe programovacich jazyku tak slozita ?
« Odpověď #49 kdy: 23. 12. 2018, 12:58:16 »


Citace
Mám trochu dojem, že jsi ve fázi kdy ti dělá problém přejít od popisu problému v neformální "lidštině" do něčeho, co už připomíná algoritmus. Tahle fáze je těžká a navíc je dost nezávislá na jazyce. A jazyk, který ti nesedí, jen přidává další věci, na které musíš myslet. Ono se to poddá. Jen počítej s tím, že to chce čas a trénink. Přece jenom se snažíš přemýšlet hodně neintuitivním a nepřirozeným způsobem.

mne prave stve ze se pri psani nemuzu soustredit na podstatu daneho stavebniho kamene (treba budovani zanorenych cyklu) ale moji pozornost odvadi to, abych to napsal syntakticky spravne


RDa

  • *****
  • 2 821
    • Zobrazit profil
    • E-mail
Re:Proc je syntaxe programovacich jazyku tak slozita ?
« Odpověď #50 kdy: 23. 12. 2018, 13:10:28 »

Citace
Mám trochu dojem, že jsi ve fázi kdy ti dělá problém přejít od popisu problému v neformální "lidštině" do něčeho, co už připomíná algoritmus. Tahle fáze je těžká a navíc je dost nezávislá na jazyce. A jazyk, který ti nesedí, jen přidává další věci, na které musíš myslet. Ono se to poddá. Jen počítej s tím, že to chce čas a trénink. Přece jenom se snažíš přemýšlet hodně neintuitivním a nepřirozeným způsobem.

mne prave stve ze se pri psani nemuzu soustredit na podstatu daneho stavebniho kamene (treba budovani zanorenych cyklu) ale moji pozornost odvadi to, abych to napsal syntakticky spravne

A proc si nevypomuzes preprocesorem? Typicky priklad je #define FORC3, FORC4 v kodu dcraw.c (zpracovani raw souboru z fotoaparatu), jez provedou cyklus na barevnyma kanalama.

Stejne tak muzes nahradit neprehledne kusy kodu jejich zkracenou variantou kvuli prehlednosti algoritmu - at uz na urovni vyrazu nebo celych bloku.

Lojza

  • *****
  • 672
    • Zobrazit profil
    • E-mail
Re:Proc je syntaxe programovacich jazyku tak slozita ?
« Odpověď #51 kdy: 23. 12. 2018, 13:32:21 »

Citace

A proc si nevypomuzes preprocesorem? Typicky priklad je #define FORC3, FORC4 v kodu dcraw.c (zpracovani raw souboru z fotoaparatu), jez provedou cyklus na barevnyma kanalama.

Stejne tak muzes nahradit neprehledne kusy kodu jejich zkracenou variantou kvuli prehlednosti algoritmu - at uz na urovni vyrazu nebo celych bloku.

to je na mne momentalne asi moc slozity, jsem momentalne rad ze to nejak splacam dohromady, zatim stejne vetsinou delam jen priklady a cviceni z ruznych ebooku

navic tomu moc nerozumim co myslis tim preprocesorem

https://cs.wikipedia.org/wiki/Preprocesor

jinak zjednoduseni bloku kodu je samozrejme hezke, ale ja jsem rad ze vubec neco dam dohromady (python)

Kit

Re:Proc je syntaxe programovacich jazyku tak slozita ?
« Odpověď #52 kdy: 23. 12. 2018, 13:39:20 »
mne prave stve ze se pri psani nemuzu soustredit na podstatu daneho stavebniho kamene (treba budovani zanorenych cyklu) ale moji pozornost odvadi to, abych to napsal syntakticky spravne

Zanořeným cyklům se snažím vyhýbat, většinou úspěšně. Syntaktickou správnost by v dnešní době měl řešit editor. Program píši pořád stejně, ale editor mi to pod rukama mění na zápis podle typu souboru, který právě edituji.

Lojza

  • *****
  • 672
    • Zobrazit profil
    • E-mail
Re:Proc je syntaxe programovacich jazyku tak slozita ?
« Odpověď #53 kdy: 23. 12. 2018, 13:44:19 »
no tak to budu muset vymenit IDLE (python) za neco lepsiho co by mi hlidalo a opravovalo syntaxi abych se mohl soustredit na podstatu problemu

Kit

Re:Proc je syntaxe programovacich jazyku tak slozita ?
« Odpověď #54 kdy: 23. 12. 2018, 13:49:11 »
Citace
A proc si nevypomuzes preprocesorem?
to je na mne momentalne asi moc slozity, jsem momentalne rad ze to nejak splacam dohromady, zatim stejne vetsinou delam jen priklady a cviceni z ruznych ebooku. navic tomu moc nerozumim co myslis tim preprocesorem
https://cs.wikipedia.org/wiki/Preprocesor
jinak zjednoduseni bloku kodu je samozrejme hezke, ale ja jsem rad ze vubec neco dam dohromady (python)

Můžeš zkusit stránku https://linux.die.net/man/1/cpp nebo https://linux.die.net/man/1/m4, ale je jich více druhů. Pro Python bych však asi nic nehledal, neboť ten už je dostatečně hutný a preprocesor by mohl být jen zbytečnou komplikací. Raději bych místo toho napsal metodu, funkci nebo dekorátor.

Kit

Re:Proc je syntaxe programovacich jazyku tak slozita ?
« Odpověď #55 kdy: 23. 12. 2018, 13:53:14 »
no tak to budu muset vymenit IDLE (python) za neco lepsiho co by mi hlidalo a opravovalo syntaxi abych se mohl soustredit na podstatu problemu

IDLE jsem zkoušel. Jako kalkulačka na různé ad-hoc výpočty je skvělým nástrojem, ale pro vývoj aplikace bych ho nepoužil.

rigormortiz

Re:Proc je syntaxe programovacich jazyku tak slozita ?
« Odpověď #56 kdy: 23. 12. 2018, 14:56:23 »
Stejne jako se preslo od xml k jsonu potazmo yamlu stejne tak i syntaxe jazyku se zmenila/vyvinula. Muj favorit je v tomhle ruby a rozhodne doporucuju precist si zaklady jejich filozofie, casti toho jsem napriklad vyuzil napr. v Ansiblu a pracuje se mi s tim velmi dobre (https://rubyonrails.org/doctrine/). Ty zakladni filozoficke pristupy lze implementovat vsude (napr. Laravel stavi hodne na RoR).

Ruby ma i "lidstejsi moznosti zapisu", napr.:
puts "Greater than 5" if i > 5

Co je dulezitejsi, ze "na to domaci bastleni" moc premyslet nemusite, ale ve chvili, kdy chcete mit neco udrzitelneho tak musite mit dost rozdilny pristup nez "one man show a one liner", jinak skoncite jak "wordpress".

Muzu ti Lojzo namitat, ze napriklad prikaz: "cd" by ve skutecnosti mel by "chd" ale aby sis to nemusel pamatovat, nejlepsi by ti asi bylo "change_directory". Premejslim, jak by se dalo v matematice zbavit zavorek, jsou otravne a kdo si to ma pamatovat :)

Je treba si uvedomit, ze vyssi programovaci jazyky jsou abstraktni, aby se nam mozecky nezavarili, protoze psat rovnou v ASM by bylo "nelidske" :) Predstavte si, ze byste delal treba revizi bytecode :D

Jeden z vydobytku programovacich jazyku je napriklad "teckova notace": Objekt.funkce nebo Objekt.funkce()
v php to nahradili Objekt->funkce(); hmmmm dobre. Zapis namespace v PHP je taky pekne obskurni a osklivy, dve lomitka? Vazne?

Pripustme ze kazdy programovaci jazyk se hodi na neco jineho, takze pokud chcete programovat ovladac na hardware asi nezvolite PHP, stejne jako webove stranky asi nebudete vyvijet v C nebo ASM (to neznamena, ze to nejde).

Teoreticky pokacite strom i priborem, ale moc efektivni to nebude.

Kazdopadne jestli mate problem se syntaxi jazyka a obtezuje vas to, tak se na to radsi vykaslete a zadejte to nekomu kdo to udela za vas, usetrite si nervy a cas ;)

Lojza

  • *****
  • 672
    • Zobrazit profil
    • E-mail
Re:Proc je syntaxe programovacich jazyku tak slozita ?
« Odpověď #57 kdy: 23. 12. 2018, 15:14:39 »
jsem jen domaci hobik co by si rad nekdy neco zkusil, prinejhorsim nejake jednoucelove malinke aplikace nebo dokonce jen skripty, nebude mne to nikdy zivit, co bych se rad naucil je schopnost vyuzivat knihoven Pypi kterych je pro python pres 100.000 a vyuzivat "jiz hotove" k dosazeni sveho ucelu


muj programovaci jazyk snu je jazyk ktery uz ma na vsechno podstatne vestavene funkce atd... (nebo staci dat import standardni knihovny) a staci ty zabudovane ci importovane funkce atd.. jen volat (cili krome zakladni znalosti pythonu by mi stacilo si vzdy nastudovat standardni knihovnu a dalsi co chci pouzit abych to "jiz hotove"  umel spravne pouzit (napr. upravit datove typy, jmena funkci atd..) event. jen lehce upravit aby to plnilo mnou pozadovany cil

Kit

Re:Proc je syntaxe programovacich jazyku tak slozita ?
« Odpověď #58 kdy: 23. 12. 2018, 15:29:32 »
Jeden z vydobytku programovacich jazyku je napriklad "teckova notace": Objekt.funkce nebo Objekt.funkce()
v php to nahradili Objekt->funkce(); hmmmm dobre. Zapis namespace v PHP je taky pekne obskurni a osklivy, dve lomitka? Vazne?

Jaká dvě lomítka v namespace? Je to jen jedno zpětné lomítko. Netvrdím, že se mi to líbí, ale zvykl jsem si.

Smalltalk místo tečky používá mezeru. Aspoň se nedávají dvě tečky (resp. dvě šipky) do jednoho výrazu, což by se určitě dělat nemělo.

Kit

Re:Proc je syntaxe programovacich jazyku tak slozita ?
« Odpověď #59 kdy: 23. 12. 2018, 15:32:19 »
muj programovaci jazyk snu je jazyk ktery uz ma na vsechno podstatne vestavene funkce atd... (nebo staci dat import standardni knihovny) a staci ty zabudovane ci importovane funkce atd.. jen volat (cili krome zakladni znalosti pythonu by mi stacilo si vzdy nastudovat standardni knihovnu a dalsi co chci pouzit abych to "jiz hotove"  umel spravne pouzit (napr. upravit datove typy, jmena funkci atd..) event. jen lehce upravit aby to plnilo mnou pozadovany cil

Řekl bych, že pro tvé účely nic lepšího než Python asi nenajdeš. Užívej ho ve zdraví.