Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Mirek Prýmek

Stran: 1 ... 102 103 [104] 105 106 ... 618
1546
Vývoj / Re:Co si myslíte o OOP?
« kdy: 06. 01. 2019, 16:59:03 »
to je dost zúžený výklad, typ můžou mít i "věci", které nemají žádnou hodnotu/nepředstavují data
Neplodné slovíčkaření.

1547
Vývoj / Re:Co si myslíte o OOP?
« kdy: 06. 01. 2019, 16:58:11 »
no ano, stacký jazyk - jeden algebraický typ, dynamický - cokoliv
mohl by sis vytvořit součtový typ, který by obsáhl všechny typy. Nazvěme takový typ Super. Všechny funkce nechť potom mají typ Super -> Super. Byl by takový jazyk/program podle tebe "statický" nebo "dynamický"?
čili, pokud bysme chtěli slovíčkařit: statický jazyk: jeden algebraický typ. Dynamický jazyk: jeden algebraický typ (pod kterým jsou "schované" všechny možné).

1548
Vývoj / Re:Co si myslíte o OOP?
« kdy: 06. 01. 2019, 16:41:15 »
v Inkvizitorově příkladu se transformuje hodnota staticky daného typu na jinou (opět staticky známého typu), žádné "rozhodování o typu" se tam neděje, stejně jako když třeba porovnáváte celá, v době překladu neznámá, čísla
Jak jsem psal někde výš: "Znát typ" není nc jiného než "mít nějakou znalost o datech v tomhle místě programu". "Statické jazyky" se snaží v době překladu ze struktury programu vydedukovat co nejvíc znalostí. "Dynamické jazyky" na to rezignují a znalosti získávají až v době běhu. V tom je ten zásaní rozdíl.

Když použiju součtový typ "StringVal String | IntVal Int", tak tím jenom dávám překladači najevo, že vím, že v tomhle místě programu se za běhu objeví buď integer nebo string. Dynamický jazyk vlastně říká totéž: v tomhle (každém) místě programu nevím, co za běhu bude: int, string, list, ...

1549
Vývoj / Re:Co si myslíte o OOP?
« kdy: 06. 01. 2019, 16:20:23 »
Tak dobře, třeba jsem konkrétně já nepochopil, co jsi chtěl říci původním příspěvkem. Pokud jsi chtěl ukázat, že i statický jazyk dokáže zpracovat dynamický vstup, nemám problém.
Myslel jsem, že jsem to napsal celkem jasně. Možná ne. Chtěl jsem říct, že otypovat program v době překladu jde jenom tam, kde mám pod kontrolou vstupní typy (lapidárně: "vím, co mi leze dovnitř"). Pokud nevím, co mi leze dovnitř, a ukáže se to až v době běhu, pak jsem v situaci dynamického typování (aka "rozhování o typech až za běhu").

Součtový typ dokáže z různých typů udělat různé hodnoty téhož typu. Pokud si množinu možných vstupních hodnot namodeluješ součtovým typem, je Tvoje tvrzení poměrně sporné.
Mno... Součtový typ je způsob, jak dva (nebo více) typů "schovat pod jeden" - je to čistě proto, že potřebuješ, aby ti z funkce lezl jenom jeden typ. Je to technikálie, nic jiného. Nic to nemění na sémantice toho programu: dovnitř ti leze něco, o čem v době překladu nic nevíš a dozvíš se to až v době běhu - a podle toho, jestli tam bude X nebo Y, půjde program větví A nebo B.

Dalo by se argumentovat i jinak: mohl by sis vytvořit součtový typ, který by obsáhl všechny typy. Nazvěme takový typ Super. Všechny funkce nechť potom mají typ Super -> Super. Byl by takový jazyk/program podle tebe "statický" nebo "dynamický"?

1550
Vývoj / Re:Gödel a staticky typované jazyky
« kdy: 06. 01. 2019, 16:10:11 »
pro každý program, který pro všechny validní vstupy skončí
To je zajímavé zúžení. Nechceme od typového systému, aby uměl posoudit i programy, které se potenciálně můžou zacyklit?

1551
Vývoj / Re:Co si myslíte o OOP?
« kdy: 06. 01. 2019, 16:07:38 »
tak tak, tyhle mlhavé vágní úvahy...
Nevím, co je na tom vágního. Jestliže máš nějaký vstup a podle toho, co tam přijde, se rozhoduje, jestli je to typ X nebo typ Y, tak tomu já říkám "dynamické typování". Pokud někdo ten pojem používá jinak, rád si to poslechnu. Ale nehodlám si tady hrát na kočku s myší.

1552
Vývoj / Re:Co si myslíte o OOP?
« kdy: 06. 01. 2019, 15:59:26 »
co je "rozhodování o typu"?
Nemam potrebu se tady tahat za nohu ani hadat o pitomosti :)

1553
Vývoj / Re:Co si myslíte o OOP?
« kdy: 06. 01. 2019, 15:33:56 »
součtové typy => dynamické typování?
rozhodování o typu za běhu => dynamické typování

1554
Vývoj / Re:Co si myslíte o OOP?
« kdy: 06. 01. 2019, 15:20:20 »
Zná dva druhy vstupu, int a noise. Co nemá 8 bajtů, je noise.
No a dynamicky (až za běhu) rozhoduje o typu => je to dynamické typování.

1555
Vývoj / Re:Co si myslíte o OOP?
« kdy: 06. 01. 2019, 14:52:03 »
Tam nikde žádný dynamický typ není
A proč to žere jenom osmibajtové vstupy?!

1556
Vývoj / Re:Gödel a staticky typované jazyky
« kdy: 06. 01. 2019, 12:53:12 »
V predikátové logice platí, že každou (bezespornou) neúplnou teorii lze rozšířit na úplnou. To dokázal kdysi v (matematickém) pravěku Lindenbaum a přišlo mu to tak triviální, že to nezveřejnil, to za něj udělal Tajtelbaum a lemma připsal původnímu autorovi. Gödelovy věty se týkají jen malinkaté podmnožiny teorií predikátové logiky.
Tohle je přesně to plácnutí do vody, které ničemu nepomůže - kdo ví, o co jde, ten to slyšet nepotřebuje, a kdo neví, tomu tohle nijak nepomůže.

Pokud chceš přispět k hezké diskusi, můžeš to trochu rozvést a zdůvodnit, proč je to relativní pro to, o čem se bavíme?

1557
Vývoj / Re:Gödel a staticky typované jazyky
« kdy: 06. 01. 2019, 12:48:05 »
ostatne Godel se z toho posleze zblaznil
Ne :) Důkazy vět o neúplnosti publikoval v roce 1931, ve svých 25 letech. Psychické problémy měl až daleko později, zemřel v 71 letech.

1558
Vývoj / Re:Gödel a staticky typované jazyky
« kdy: 06. 01. 2019, 12:43:25 »
nerikaji ty Godelovy vety o neuplnosti v podstate jen to, ze pravdivost ? (uplnost ?) systemu zalozeneho na nejakych axiomech NELZE DOKAZAT, ale vubec nepopira (resp. nevyjadruje se) ze by takovy system nemohl existovat ? cili ze takovy system je mozne mit (jen tam bude ta nejistota ze to nelze dokazat ?)
Pokud si chceme fakt Goedelovy věty připomenout a popovídat si o tom, co z nich plyne pro programátorskou praxi, tak tomu nepomůžou takhle mlhavé vágní úvahy, spíš naopak.

Právě proto jsem tohle téma založil - nelíbí se mi zdejší nešvar, že se tady teorie zmiňuje jenom stylem mírnixtýrnix plácnutí nějakého "vznešeného" pojmu, aniž by se nějak doložilo, jestli je ten poznatek v daném kontextu vůbec relevantní (typický je "ale to nejde, protože halting problem", to tady na fóru zaznělo už x-krát, skoro vždycky nekorektně, protože se tím argumentovalo pro něco, co z poznatků o halting problem vůbec nevyplývá).

Takže pokud se někdo chce pokusit, bylo by asi dobrý začít tím, že Goedelovy věty mluví o dokazatelnosti v rámci nějakého logického systému, kde mám nějaké axiomy a nějaká odvozovací pravidla. Pokud to chci dát do souvislosti s typovým systémem programovacího jazyka, budu asi muset mezi těmahle dvěma světy najít nějakou korespondenci...


1559
Vývoj / Re:Co si myslíte o OOP?
« kdy: 06. 01. 2019, 01:12:23 »
To je jak kdyby jeden frajer peclive frezoval ocelove obrobky do komplexniho pristroje, zatimco opodal by se mu smal nejaky plantala z kvetinarstvi, ze naco to frezuje do oceli a dela to tak presne a namahave, kdyz na to prece muze pouzit stejne dobre nuzky a lepenku, jako to dela on.

Proč bych měl lisovat podložky pod matičky z plechu, když je mohu soustružit z kulatiny a prověřovat kalibrem, že?
Panové, fakt vám přijde, že tahle pseudotrefná, emotivní, na všech deset noh kulhající přirovnání, jsou k něčemu dobrá?

1560
Vývoj / Re:Co si myslíte o OOP?
« kdy: 06. 01. 2019, 00:54:31 »
Dá se pro libovolný program napsat testovací sada, která nalezne všechny chyby, jež by nalezla statická typová kontrola, a přitom nebude zahrnovat (jakkoliv zakamuflovanou) statickou typovou kontrolu?
Ne

Já si to myslím taky, ale na akademickou otázku by mě zajímala akademická odpověď, tedy přeformulování otázky do formální podoby a matematický důkaz...
Mě by zas enormně zajímalo, jak bys chtěl vágní pojmy typu "jakkoliv zakamuflovaná statická typová kontrola" přeformulovat do formální podoby :)

Stran: 1 ... 102 103 [104] 105 106 ... 618