Fórum Root.cz

Práce => Studium a uplatnění => Téma založeno: stud 19. 03. 2016, 15:06:58

Název: Logika a informatika
Přispěvatel: stud 19. 03. 2016, 15:06:58
Máme teď ve škole (VŠ) logiku a nějak zatím nevidím souvislost s IT. Mohl by mi tu někdo dát nějaký příklad, proč by mě měla jako programátora zajímat?
Název: Re:Logika a informatika
Přispěvatel: Ondra Satai Nekola 19. 03. 2016, 15:42:34
Vycislitelnost?
(plus samozrejme takove ty trivialni "stredoskolske" znalosti logickych funkci a operaci s nimi.)
Název: Re:Logika a informatika
Přispěvatel: Ivan Nový 19. 03. 2016, 15:47:15
Máme teď ve škole (VŠ) logiku a nějak zatím nevidím souvislost s IT. Mohl by mi tu někdo dát nějaký příklad, proč by mě měla jako programátora zajímat?

Logika je dobrá pro každého. Nejen pro programátora. Logika pro programátora je jako noty pro hudebníka, ovšem samouci hrají i bez not. Jinak je to, jako byste se zeptal, proč potřebuji tolik peněz. Znalostí a peněz není nikdy dost. Třeba se za 20 let dostanete do koncentračního tábora, a díky znalostem, které nyní získáte, přežijete :-))) Ale teď vážně, je dobrá proto, abyste za pár let uspěl v konkurenci s myslícími stroji a měl práci.

Název: Re:Logika a informatika
Přispěvatel: Radek Miček 19. 03. 2016, 16:16:38
Máme teď ve škole (VŠ) logiku a nějak zatím nevidím souvislost s IT. Mohl by mi tu někdo dát nějaký příklad, proč by mě měla jako programátora zajímat?

Programy lze chápat jako důkazy v určité logice (říká se tomu Curry-Howardův izomorfismus (https://en.wikipedia.org/wiki/Curry%E2%80%93Howard_correspondence)). Důsledkem toho jsou programovací jazyky jako například Coq (https://en.wikipedia.org/wiki/Coq), kde můžete psát certifikované programy - příkladem takového programu je CompCert (http://compcert.inria.fr/).

Název: Re:Logika a informatika
Přispěvatel: davkol 19. 03. 2016, 18:08:29
Jednou informatika, pak IT, pak programátor. Pokud bych se držel té informatiky, tak logika je skoro všude.

U nás základní kurz logiky
Název: Re:Logika a informatika
Přispěvatel: Yarda 20. 03. 2016, 09:08:42
A jakou logiku to máte? Jsou různé. Třeba filosofická, matematická (třeba Booleova) a ženská.
 ;D
Název: Re:Logika a informatika
Přispěvatel: zboj 20. 03. 2016, 12:49:17
Jde hlavně o logické programování, tedy Prolog apod., případně nějaké dokazovače. Je dobré vědět, proč je predikátová logika (FOL) úplná, co plyne z její nerozhodnutelnosti, jaké její fragmenty rozhodnutelné jsou, proč jsou modální, temporální a nemonotonní logika fragmenty FOL, jak se převádí logika vyššího řádu na FOL atd. Nejlépe se to člověk naučí na reálných příkladech, typicky z oblasti umělé inteligence.
Název: Re:Logika a informatika
Přispěvatel: ava 20. 03. 2016, 13:54:43
Máme teď ve škole (VŠ) logiku a nějak zatím nevidím souvislost s IT. Mohl by mi tu někdo dát nějaký příklad, proč by mě měla jako programátora zajímat?

Programy lze chápat jako důkazy v určité logice (říká se tomu Curry-Howardův izomorfismus (https://en.wikipedia.org/wiki/Curry%E2%80%93Howard_correspondence)). Důsledkem toho jsou programovací jazyky jako například Coq (https://en.wikipedia.org/wiki/Coq), kde můžete psát certifikované programy - příkladem takového programu je CompCert (http://compcert.inria.fr/).

Jo, nedávno jsem na to narazil a moc se mi to zalíbilo. Jako lehké a srozumitelné intro mi posloužila tato přednáška (druhá polovina): https://www.youtube.com/watch?v=TbASMeJSh9s (https://www.youtube.com/watch?v=TbASMeJSh9s) - Adelbert Chang: Reasoning with Types.

Jsem zvědav, zda to někdy použiju v praxi :-)
Název: Re:Logika a informatika
Přispěvatel: Radek Miček 20. 03. 2016, 15:01:26
Jsem zvědav, zda to někdy použiju v praxi :-)

Použití ukazuje třeba Miles Sabin v článku Unboxed union types in Scala via the Curry-Howard isomorphism (http://milessabin.com/blog/2011/06/09/scala-union-types-curry-howard/):

Kód: [Vybrat]
// Definice negace v intuicionistické logice.
// Pro nás je důležitá kontravariance A.
type ¬[A] = A => Nothing
// Union typ získáme pomocí De Morganových pravidel.
type ∨[T, U] = ¬[¬[T] with ¬[U]]
// Podmínka: X má typ T nebo U.
// Bohužel, nejde jednoduše psát A: B |∨| C |∨| D |∨| E.
type |∨|[T, U] = { type λ[X] = ¬¬[X] <:< (T ∨ U) }
Název: Re:Logika a informatika
Přispěvatel: stud 21. 03. 2016, 14:03:40
Máme teď ve škole (VŠ) logiku a nějak zatím nevidím souvislost s IT. Mohl by mi tu někdo dát nějaký příklad, proč by mě měla jako programátora zajímat?

Programy lze chápat jako důkazy v určité logice (říká se tomu Curry-Howardův izomorfismus (https://en.wikipedia.org/wiki/Curry%E2%80%93Howard_correspondence)). Důsledkem toho jsou programovací jazyky jako například Coq (https://en.wikipedia.org/wiki/Coq), kde můžete psát certifikované programy - příkladem takového programu je CompCert (http://compcert.inria.fr/).
Existuje nějaký podobný příklad praktického uplatnění i pro teorii množin?
Název: Re:Logika a informatika
Přispěvatel: alex 21. 03. 2016, 14:29:01
Máme teď ve škole (VŠ) logiku a nějak zatím nevidím souvislost s IT. Mohl by mi tu někdo dát nějaký příklad, proč by mě měla jako programátora zajímat?

Programy lze chápat jako důkazy v určité logice (říká se tomu Curry-Howardův izomorfismus (https://en.wikipedia.org/wiki/Curry%E2%80%93Howard_correspondence)). Důsledkem toho jsou programovací jazyky jako například Coq (https://en.wikipedia.org/wiki/Coq), kde můžete psát certifikované programy - příkladem takového programu je CompCert (http://compcert.inria.fr/).
Existuje nějaký podobný příklad praktického uplatnění i pro teorii množin?
https://www.google.cz/search?q=sql+inner+diagram&client=ubuntu&hs=h61&channel=fs&biw=1847&bih=948&tbm=isch&imgil=mogSTbjuV7hmkM%253A%253BdiCPZV2HP4qaSM%253Bhttp%25253A%25252F%25252Fstackoverflow.com%25252Fquestions%25252F22222225%25252Fsql-outer-join-2-tables&source=iu&pf=m&fir=mogSTbjuV7hmkM%253A%252CdiCPZV2HP4qaSM%252C_&usg=__9_Ux2xH0b4i1f272vRLuSfmXvJQ%3D&ved=0ahUKEwiomJyF8dHLAhUnlHIKHSJoAwUQyjcILg&ei=3vbvVqixCKeoygOi0I0o#imgrc=mogSTbjuV7hmkM%3A
Název: Re:Logika a informatika
Přispěvatel: David 21. 03. 2016, 14:41:42
Máme teď ve škole (VŠ) logiku a nějak zatím nevidím souvislost s IT. Mohl by mi tu někdo dát nějaký příklad, proč by mě měla jako programátora zajímat?

Jedno z moznych uplatneni je contract based programing. Programator pouziva logiku k definici interface (precoditions, postconditions, ...). Specifikace interface se pak pouziva k testovani nebo dokonce k dokazani toho, ze implementace respektuje specifikaci. Tohle umoznuje relativne dobre napriklad programovaci jazyk SPARK 2014. Existuji nastroje pro contract based programming i pro Javu (OpenJML) nebo C++ (VCC), ale ty jsou z ruznych duvodu dost obtizne pouzitelne pro lidi, kteri nemaji dost presnou predstavu o tom, jak pracuji...
Název: Re:Logika a informatika
Přispěvatel: zboj 21. 03. 2016, 14:54:22
Máme teď ve škole (VŠ) logiku a nějak zatím nevidím souvislost s IT. Mohl by mi tu někdo dát nějaký příklad, proč by mě měla jako programátora zajímat?

Programy lze chápat jako důkazy v určité logice (říká se tomu Curry-Howardův izomorfismus (https://en.wikipedia.org/wiki/Curry%E2%80%93Howard_correspondence)). Důsledkem toho jsou programovací jazyky jako například Coq (https://en.wikipedia.org/wiki/Coq), kde můžete psát certifikované programy - příkladem takového programu je CompCert (http://compcert.inria.fr/).
Existuje nějaký podobný příklad praktického uplatnění i pro teorii množin?
https://www.google.cz/search?q=sql+inner+diagram&client=ubuntu&hs=h61&channel=fs&biw=1847&bih=948&tbm=isch&imgil=mogSTbjuV7hmkM%253A%253BdiCPZV2HP4qaSM%253Bhttp%25253A%25252F%25252Fstackoverflow.com%25252Fquestions%25252F22222225%25252Fsql-outer-join-2-tables&source=iu&pf=m&fir=mogSTbjuV7hmkM%253A%252CdiCPZV2HP4qaSM%252C_&usg=__9_Ux2xH0b4i1f272vRLuSfmXvJQ%3D&ved=0ahUKEwiomJyF8dHLAhUnlHIKHSJoAwUQyjcILg&ei=3vbvVqixCKeoygOi0I0o#imgrc=mogSTbjuV7hmkM%3A
Předpokládám, že byla myšlena teorie množin na úrovni VŠ (vzhledem k profilu tazatele), ne tři primitivní operace v SQL. Relační algebra pak není záležitostí teorie množin.
Název: Re:Logika a informatika
Přispěvatel: zboj 21. 03. 2016, 17:08:32
Máme teď ve škole (VŠ) logiku a nějak zatím nevidím souvislost s IT. Mohl by mi tu někdo dát nějaký příklad, proč by mě měla jako programátora zajímat?

Programy lze chápat jako důkazy v určité logice (říká se tomu Curry-Howardův izomorfismus (https://en.wikipedia.org/wiki/Curry%E2%80%93Howard_correspondence)). Důsledkem toho jsou programovací jazyky jako například Coq (https://en.wikipedia.org/wiki/Coq), kde můžete psát certifikované programy - příkladem takového programu je CompCert (http://compcert.inria.fr/).
Existuje nějaký podobný příklad praktického uplatnění i pro teorii množin?

Bavíme-li se o nauce o nekonečných množinách (triviální operace nad konečnými množinami, což je látka základní školy, se pochopitelně hodí například při práci s databázemi), tak mě, upřímně řečeno, žádný přímý příklad použití nenapadá. Nicméně některé výsledky nám umožňují lépe chápat některé jevy v logice, jež už své (dost podstatné) místo v IT má. Například díky Cantorově větě víme, že v logice druhého řádu může jít kvantifikátor přes nespočetnou množinu, čímž umožňuje existenci bezesporných teorií, jež nemají model (v té nejjednodušší množinově-teoretické sémantice). Na druhou stranu ale víme, že to vlastně vůbec nevadí, protože nějaké tvrzení je dokazatelné v logice druhého řádu, právě když je dokazatelné v příslušné "zprvořádněné" (firstorderized) teorii, takže různých logik vyššího řádu a teorie typů (používaných zejména pro reprezentaci znalostí a automatické vyvozování v umělé inteligenci) se bát nemusíme (ostatně se s úspěchem používají). Navíc s použitím prostředků teorie množin je možné uspořádat různé (algebraizovatelné) logiky do určité hierarchie, a tak vidět, je-li možné nějakou syntakticky (na první pohled) bohatší logiku převést na výrokovou či predikátovou logiku bez ztráty expresivity.
Název: Re:Logika a informatika
Přispěvatel: BLEK. 21. 03. 2016, 18:08:10
vysvetlim ti to polopate
teoria mnozin je starodavny programovaci jazyk pre ludsky mozeg. a kedze sme debili tak su tam mozgove ojeby ako napr. tato veta nie je pravdiva.

potom maz logiku , v kocke asi takto. mnozina po slovensky tiez bitmapa to je ked mas cislo a chodis sprava do lava tak to su tie bity. powerset - potom chodis dolu a hore tomu sa kamarade hovori brute force a z najvacsieho ti to prejebe na nulu to je pretecenie.

a za tym su vsetky mozne boolovske funkcie ale toto ta nemusi stresovat.

s pozdravom, php javascript opica
Název: Re:Logika a informatika
Přispěvatel: davkol 21. 03. 2016, 21:25:43
Máme teď ve škole (VŠ) logiku a nějak zatím nevidím souvislost s IT. Mohl by mi tu někdo dát nějaký příklad, proč by mě měla jako programátora zajímat?

Programy lze chápat jako důkazy v určité logice (říká se tomu Curry-Howardův izomorfismus (https://en.wikipedia.org/wiki/Curry%E2%80%93Howard_correspondence)). Důsledkem toho jsou programovací jazyky jako například Coq (https://en.wikipedia.org/wiki/Coq), kde můžete psát certifikované programy - příkladem takového programu je CompCert (http://compcert.inria.fr/).
Existuje nějaký podobný příklad praktického uplatnění i pro teorii množin?
https://i.stack.imgur.com/KDi5d.png
Na tom je vtipné to, že ten obrázek je špatně. V relačním modelu jde o… wait for it… relace.
Název: Re:Logika a informatika
Přispěvatel: davkol 21. 03. 2016, 21:38:16
…resp. dá se najít výklad, ve kterém špatně není (A, B jsou až výsledky operace), což ale není zrovna intuitivní, když JOIN není množinová operace jako ty, jež se typicky Vennovými diagramy znázorňují.