Diskusia k šablóne:Infobox Programovací jazyk
Vylúčenie položky "interpetovaný"
[upraviť zdroj]Som za neuvedenie riadku "intepretovaný", pretože v kontexte syntaxe a sémantiky programovacieho jazyka nemá zmysel. Je treba rozlišovať medzi programovacím jazykom ako takým a nástrojmi na jeho spracovanie (kompilátory, interpretery). Každý jazyk môže byť aj "interpretovaný", aj "kompilovaný" (a v konečnom dôsledku sú vlastne aj tak všetky jazyky "interpretované" procesorom).
--Ondrejsv 21:56, 27 mar 2005 (UTC)
- V podstate islo o to rozlisit medzi klasickymi kompilovanymi a skriptovacimi jazykmi, co je podla mna dost dolezity rozdiel. Ale v dnesnej dobe sa aj tak uz zacinaju moderne jazyky rozlisovat na dynamicke a nedynamicke, takze to mozme kludne zmenit aj na takyto nejaky sposob rozlisovania. Co myslis, ako by bolo najlepsie dat najavo, ze C je klasicky kompilovany jazyk (neberme teraz do uvahy take hybridy ako TCC a pod) a trebars perl je presne typicky priklad interpretovaneho jazyka? Poznamka o interpretacii procesorom nie je moc na mieste, nakolko to by sme potom nemuseli rozdelovat uz vobec podla ziadneho kriteria, nezalezalo by ci je to proceduralny jazyk alebo objektovy, ved v konecnom dosledku su to pre tranzistory vsetko aj tak jednotky a nuly, nie? :) Nesuhlasim vobec s tym, ze napriklad taky perl, ruby alebo python je nastroj, to su vsetko plnohodnotne programovacie jazyky. Mozno by bolo dobre zvazit rozdelenie na skriptovacie jazyky, ved skus kludne nieco vymysliet ak ta napadne. Atomique 22:23, 27 mar 2005 (UTC)
- Mne islo o to, ze programovaci jazyk ako taky je len sada dobre definovanych syntaktickych a semantickych pravidiel, nema preto zmysel hovorit, ci C, Perl, Basic alebo Prolog je interpretovany ci kompilovany. Mozeme hovorit az pri jednotlivych implementaciach v zmysle "Microsoft Visual C++" je kompilator jazyka C++, "GW-BASIC" je interpreter jazyka BASIC, "Microsoft QuickBasic" je kompilator jazyka BASIC a pod. Pre kazdy programovaci jazyk mozeme vytvorit aj kompilator, aj interpreter. Tymi nastrojmi som myslel prave toto, nie ci jazyk je plnohodnotny alebo nie :-). Je sice pravda, ze vacsinou sa napr. jazyk C kompiluje do nativneho kodu a napr. Python sa interpretuje, ale samotne spojenie "C je kompilovany jazyk" a "Python je interpretovany" je, ako som spomenul, nezmyselne. (S tou interpretaciou procesorom to bolo len podpichnutie :-)). Preto navrhujem:
- rozdelit ich podla pouzitia (vseobecne, skriptovacie, datovo-manipulacne, datavo-definicne a pod.),
- podla pouzitej paradigmy (imperativne (proceduralne a objektovo-orientovane) a deklarativne (logicke a funkcionalne)).
- --Ondrejsv 23:23, 27 mar 2005 (UTC)
- Mne islo o to, ze programovaci jazyk ako taky je len sada dobre definovanych syntaktickych a semantickych pravidiel, nema preto zmysel hovorit, ci C, Perl, Basic alebo Prolog je interpretovany ci kompilovany. Mozeme hovorit az pri jednotlivych implementaciach v zmysle "Microsoft Visual C++" je kompilator jazyka C++, "GW-BASIC" je interpreter jazyka BASIC, "Microsoft QuickBasic" je kompilator jazyka BASIC a pod. Pre kazdy programovaci jazyk mozeme vytvorit aj kompilator, aj interpreter. Tymi nastrojmi som myslel prave toto, nie ci jazyk je plnohodnotny alebo nie :-). Je sice pravda, ze vacsinou sa napr. jazyk C kompiluje do nativneho kodu a napr. Python sa interpretuje, ale samotne spojenie "C je kompilovany jazyk" a "Python je interpretovany" je, ako som spomenul, nezmyselne. (S tou interpretaciou procesorom to bolo len podpichnutie :-)). Preto navrhujem:
- Suhlas. A este by som navrhol pridat jedno dalsie rozdelenie a to podla dynamickosti jazyka, t.j. ci sa vsetky veci uz zafixuju a urcia pocas kompilacie (napr. deklaracia premennych) alebo ci sa vela veci deje este pocas run-time. Atomique 09:32, 28 mar 2005 (UTC)
Myslím, že by sa položka mala vrátiť, z toho prostého dôvodu, že interpretovanosť jazyka udáva aj jeho syntax (prípadne naopak). Napríklad - Lisp-ovská klasická syntax "reverse polish notation", ktorá umožňuje úpravu kódu za behu programu. Bez RPN by nebolo možné vedieť ako kompiler vyhodnotí dané výrazy a nebolo by možné jednotlivé vnútra výrazov za behu upravovať (človek by nevedel, kde aká časť výrazu skončí). Ďalej mnoho interpretovaných jazykov podporuje inline assembler byte-codu (Pawn, Java). Ako je zvykom, keďže sú interpretované vždy, hackeri sa môžu spoliehať na isté vlastnosti prostredia a vznikajú programy písané v inline byte-code, ktoré zasahujú do štruktúry interpretera. Mohol by som taký kód v Pawn ukázať, ale pochybujem, že tu niekto má dostatočné znalosti na jeho pochopenie.--Chemikalia (diskusia) 08:38, 5. september 2018 (UTC)
- Vyššie uvedené argumenty stále platia (resp. po tých 13 rokoch je to ešte vypuklejšie). Rozdiely sa stierajú, máloktorý súčasný mainstreamový „interpretovaný“ jazyk je skutočne čisto interpretovaný (JIT kompilácia), navyše tie s prekladom do bajtkódu spĺňajú aspekty oboch prístupov (prvotný preklad do bajtkódu je technicky veľmi podobný prekladu do strojového kódu, aj keby sa potom ten bajtkód zrovna interpretoval naivným interpreterom).
- Podstatné aspekty, pôvodne zviazané s rozdielmi medzi interpretovanými a prekladanými jazykmi, je možné presnejšie vystihnúť uvedením použitého typového systému, miery reflexie a pod. Tzn., ak tam niečo pridávať, tak skôr parameter „paradigma“, kde sa dajú veci ako tá reflexivita uviesť (viď. en alebo cs).
- Čo sa týka toho záveru: decentne zamachrovať sa dá veľa spôsobmi, no tento je pomerne nešťastný, skôr z toho vyjdeš ako *****. Ak cítiš potrebu nejaký príklad uvádzať, tak ho buď prosto uveď, alebo to vôbec nespomínaj. Tamto je v duchu „mohol by som tu v skratke napísať, ako funguje všehomír (viem, je to na neuverenie, no som až taký dobrý), keďže ale pochybujem, že by to tu na Zemi niekto pochopil, nechám to nateraz tak“. --Teslaton (diskusia) 10:30, 5. september 2018 (UTC)