eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › generowanie programow
Ilość wypowiedzi w tym wątku: 19

  • 1. Data: 2014-01-18 00:01:54
    Temat: generowanie programow
    Od: g...@g...com

    Bardzo ladne wystapienie Daniela Friedmana
    i Williama Byrda wprowadzajace w system do
    programowania w logice "kanren" dla Scheme'u.
    Polecam obejrzenie przynajmniej pierwszych
    20 minut, bo to, co sie dzieje w 20-tej minucie,
    robi wielkie wrazenie :]

    http://www.youtube.com/watch?v=fHK-uS-Iedc

    Mowiac w skrocie: autorzy najpierw pokazuja,
    w jaki sposob mozna przepisac program napisany
    w stylu funkcyjnym na "program w logice"
    (poprzez dopisanie dodatkowego argumentu,
    majacego reprezentowac wynik), przy okazji
    zwracajac uwage na pewne niuanse.

    Nastepnie biora kod zrodlowy ewaluatora
    metacyklicznego i przerabiaja go w taki
    sposob.

    A na koniec... niespodzianka :)


  • 2. Data: 2014-01-18 00:07:45
    Temat: Re: generowanie programow
    Od: g...@g...com

    Przepraszam, wkleilem zlego linka.
    Tutaj jest prawidlowy:
    http://www.youtube.com/watch?v=5Q9x16uIsKA


  • 3. Data: 2014-01-18 03:35:48
    Temat: Re: generowanie programow
    Od: A.L. <a...@a...com>

    On Fri, 17 Jan 2014 15:01:54 -0800 (PST), g...@g...com
    wrote:

    >Bardzo ladne wystapienie Daniela Friedmana
    >i Williama Byrda wprowadzajace w system do
    >programowania w logice "kanren" dla Scheme'u.
    >Polecam obejrzenie przynajmniej pierwszych
    >20 minut, bo to, co sie dzieje w 20-tej minucie,
    >robi wielkie wrazenie :]
    >
    >http://www.youtube.com/watch?v=fHK-uS-Iedc
    >
    >Mowiac w skrocie: autorzy najpierw pokazuja,
    >w jaki sposob mozna przepisac program napisany
    >w stylu funkcyjnym na "program w logice"
    >(poprzez dopisanie dodatkowego argumentu,
    >majacego reprezentowac wynik),

    A co to ma wspolnego z "programwoaniem w logice"?...

    A.L.

    P.S> 20 minut bede ogladal jak pojde na emeryture


  • 4. Data: 2014-01-18 09:12:33
    Temat: Re: generowanie programow
    Od: g...@g...com

    W dniu sobota, 18 stycznia 2014 03:35:48 UTC+1 użytkownik A. L. napisał:
    > On Fri, 17 Jan 2014 15:01:54 -0800 (PST), g...@g...com
    > wrote:
    >
    >
    > >Bardzo ladne wystapienie Daniela Friedmana
    > >i Williama Byrda wprowadzajace w system do
    > >programowania w logice "kanren" dla Scheme'u.
    > >Polecam obejrzenie przynajmniej pierwszych
    > >20 minut, bo to, co sie dzieje w 20-tej minucie,
    > >robi wielkie wrazenie :]
    > >
    > >http://www.youtube.com/watch?v=fHK-uS-Iedc
    > >
    > >Mowiac w skrocie: autorzy najpierw pokazuja,
    > >w jaki sposob mozna przepisac program napisany
    > >w stylu funkcyjnym na "program w logice"
    > >(poprzez dopisanie dodatkowego argumentu,
    > >majacego reprezentowac wynik),
    >
    >
    > A co to ma wspolnego z "programwoaniem w logice"?...

    Co co ma wspolnego z programowaniem w logice?

    > P.S> 20 minut bede ogladal jak pojde na emeryture

    Czekam zatem ;]


  • 5. Data: 2014-01-18 09:47:20
    Temat: Re: generowanie programow
    Od: g...@g...com

    W dniu sobota, 18 stycznia 2014 09:12:33 UTC+1 użytkownik g...@g...com
    napisał:

    > > >Mowiac w skrocie: autorzy najpierw pokazuja,
    > > >w jaki sposob mozna przepisac program napisany
    > > >w stylu funkcyjnym na "program w logice"
    > > >(poprzez dopisanie dodatkowego argumentu,
    > > >majacego reprezentowac wynik),
    > >
    > >
    >
    > > A co to ma wspolnego z "programwoaniem w logice"?...
    >
    > Co co ma wspolnego z programowaniem w logice?

    Pozwole sobie zagdywac, jaka byla intencja za tym
    dosc lakonicznie sformulowanym pytanie.
    Otoz z punktu widzenia logiki funkcja to relacja
    roznowartosciowa pomiedzy dwoma zbiorami. Mowiac
    scisle, powiemy, ze F jest funkcja wtw
    dla kazdego x istnieje dokladnie jedno y takie,
    ze F(x,y), albo jeszcze inaczej, ze dla kazdego x
    istnieje takie y, ze F(x,y) i dla kazdego z, jesli
    F(x,z) to y=z.

    Mozemy wowczas pisac y = f(x).

    Podstawowa idea programow napisanych w stylu
    funkcyjnym jest taka, ze procedury realizuja
    funkcje, czyli ze procedura wywolana z tymi
    samymi argumentami zawsze zwroci taki sam
    wynik.

    Dodatkowo programy napisane w stylu funkcyjnym
    unikaja przypisan i petli, a zamiast nich
    stosuja rekursje.

    Systemy do programowania w logice nie pozwalaja
    w ogole definiowac procedur, a jedynie predykaty.
    Poza tym dziela z programami funkcyjnymi te
    wlasnosc, ze nie dopuszczaja przepisan.

    Majac dana funkcje y=f(x), musimy stworzyc predykat
    F(x,y) taki, ze F(x,y) <=> y=f(x). Na tym wlasnie
    polega przejscie od programu funkcyjnego do programu
    w logice.

    Na pozor mogloby sie wydawac, ze to przejscie
    jest trywialne, bo w jezyku funkcyjnym wystarczyloby
    zdefiniowac

    F(x,y) =df y=f(x)

    i chociaz w sensie warunkow prawdziwosci jest ok, to
    jednak systemy do programowania w logice nie zajmuja
    sie tylko badaniem prawdziwosci, ale przede wszystkim
    dostarczaniem zbiorow rozwiazan spelniajacych okreslone
    warunki. Dlatego chcac uzyskac logiczna wersje definicji
    programu funkcyjnego, nalezy jeszcze zastapic operator
    porownania operatorem unifikacji i wykonac pare innych
    zabiegow (a w szczegolnosci oczywiscie zastapic wywolania
    rekurencyjne f odwolaniami do F)

    Mam nadzieje, ze to odpowiada na Twoje pytanie.


  • 6. Data: 2014-01-18 10:35:44
    Temat: Re: generowanie programow
    Od: g...@g...com

    W dniu sobota, 18 stycznia 2014 09:47:20 UTC+1 użytkownik g...@g...com
    napisał:

    > Mam nadzieje, ze to odpowiada na Twoje pytanie.

    Chyba ze pytales, co wskazana przeze mnie prezentacja
    ma wspolnego z programowaniem w logice. Wowczas jednak
    bedziesz chyba musial poczekac z uzyskaniem odpowiedzi
    do emerytury


  • 7. Data: 2014-01-18 12:08:42
    Temat: Re: generowanie programow
    Od: firr <p...@g...com>

    W dniu sobota, 18 stycznia 2014 10:35:44 UTC+1 użytkownik g...@g...com
    napisał:
    > W dniu sobota, 18 stycznia 2014 09:47:20 UTC+1 użytkownik g...@g...com
    napisał:
    >
    >
    >
    > > Mam nadzieje, ze to odpowiada na Twoje pytanie.
    >
    >
    >
    > Chyba ze pytales, co wskazana przeze mnie prezentacja
    >
    > ma wspolnego z programowaniem w logice. Wowczas jednak
    >
    > bedziesz chyba musial poczekac z uzyskaniem odpowiedzi
    >
    > do emerytury

    z AL'em ciezko pogadac rzeczowo;/, aczkolwiek szczerze mowiac mnie osobiscie AL
    zaskoczyl ze dwa razy pewnymi przejawami 'wyzszej inteligencji' (zief)
    i coponiektóre wypowiedzi maja nawet sporo sensu ale
    Al z niewiadomych powodów ich 'nie wyjasnia' ;]\

    (co do ogladnia prezentacji na video ja tez ich
    nie ogladam, w pierwszej mierze dlatego ze mam
    slaby net)

    (co do mnie to chyba teraz wypadaloby sie znowu troche skupic..)





  • 8. Data: 2014-01-18 23:11:50
    Temat: Re: generowanie programow
    Od: A.L. <a...@a...com>

    On Sat, 18 Jan 2014 00:12:33 -0800 (PST), g...@g...com
    wrote:

    >W dniu sobota, 18 stycznia 2014 03:35:48 UTC+1 użytkownik A. L. napisał:
    >> On Fri, 17 Jan 2014 15:01:54 -0800 (PST), g...@g...com
    >> wrote:
    >>
    >>
    >> >Bardzo ladne wystapienie Daniela Friedmana
    >> >i Williama Byrda wprowadzajace w system do
    >> >programowania w logice "kanren" dla Scheme'u.
    >> >Polecam obejrzenie przynajmniej pierwszych
    >> >20 minut, bo to, co sie dzieje w 20-tej minucie,
    >> >robi wielkie wrazenie :]
    >> >
    >> >http://www.youtube.com/watch?v=fHK-uS-Iedc
    >> >
    >> >Mowiac w skrocie: autorzy najpierw pokazuja,
    >> >w jaki sposob mozna przepisac program napisany
    >> >w stylu funkcyjnym na "program w logice"
    >> >(poprzez dopisanie dodatkowego argumentu,
    >> >majacego reprezentowac wynik),
    >>
    >>
    >> A co to ma wspolnego z "programwoaniem w logice"?...To, cytuje:

    >w jaki sposob mozna przepisac program napisany
    > >w stylu funkcyjnym na "program w logice"
    > >(poprzez dopisanie dodatkowego argumentu,
    > >majacego reprezentowac wynik),

    Chodzi o to w jaki sposob "dopisanie argumentu" nagle powoduje ze mamy
    "program w logice"

    A.L.


  • 9. Data: 2014-01-18 23:36:27
    Temat: Re: generowanie programow
    Od: A.L. <a...@a...com>

    On Sat, 18 Jan 2014 00:47:20 -0800 (PST), g...@g...com
    wrote:

    >W dniu sobota, 18 stycznia 2014 09:12:33 UTC+1 użytkownik g...@g...com
    napisał:
    >
    >> > >Mowiac w skrocie: autorzy najpierw pokazuja,
    >> > >w jaki sposob mozna przepisac program napisany
    >> > >w stylu funkcyjnym na "program w logice"
    >> > >(poprzez dopisanie dodatkowego argumentu,
    >> > >majacego reprezentowac wynik),
    >> >
    >> >
    >>
    >> > A co to ma wspolnego z "programwoaniem w logice"?...
    >>
    >> Co co ma wspolnego z programowaniem w logice?
    >
    >Pozwole sobie zagdywac, jaka byla intencja za tym
    >dosc lakonicznie sformulowanym pytanie.
    >Otoz z punktu widzenia logiki funkcja to relacja
    >roznowartosciowa pomiedzy dwoma zbiorami. Mowiac
    >scisle, powiemy, ze F jest funkcja wtw
    >dla kazdego x istnieje dokladnie jedno y takie,
    >ze F(x,y), albo jeszcze inaczej, ze dla kazdego x
    >istnieje takie y, ze F(x,y) i dla kazdego z, jesli
    >F(x,z) to y=z.
    >
    >Mozemy wowczas pisac y = f(x).
    >
    >Podstawowa idea programow napisanych w stylu
    >funkcyjnym jest taka, ze procedury realizuja
    >funkcje, czyli ze procedura wywolana z tymi
    >samymi argumentami zawsze zwroci taki sam
    >wynik.
    >
    >Dodatkowo programy napisane w stylu funkcyjnym
    >unikaja przypisan i petli, a zamiast nich
    >stosuja rekursje.
    >
    >Systemy do programowania w logice nie pozwalaja
    >w ogole definiowac procedur, a jedynie predykaty.
    >Poza tym dziela z programami funkcyjnymi te
    >wlasnosc, ze nie dopuszczaja przepisan.
    >
    >Majac dana funkcje y=f(x), musimy stworzyc predykat
    >F(x,y) taki, ze F(x,y) <=> y=f(x). Na tym wlasnie
    >polega przejscie od programu funkcyjnego do programu
    >w logice.
    >
    >Na pozor mogloby sie wydawac, ze to przejscie
    >jest trywialne, bo w jezyku funkcyjnym wystarczyloby
    >zdefiniowac
    >
    >F(x,y) =df y=f(x)
    >
    >i chociaz w sensie warunkow prawdziwosci jest ok, to
    >jednak systemy do programowania w logice nie zajmuja
    >sie tylko badaniem prawdziwosci, ale przede wszystkim
    >dostarczaniem zbiorow rozwiazan spelniajacych okreslone
    >warunki. Dlatego chcac uzyskac logiczna wersje definicji
    >programu funkcyjnego, nalezy jeszcze zastapic operator
    >porownania operatorem unifikacji i wykonac pare innych
    >zabiegow (a w szczegolnosci oczywiscie zastapic wywolania
    >rekurencyjne f odwolaniami do F)
    >
    >Mam nadzieje, ze to odpowiada na Twoje pytanie.

    Tak.

    To co napiales pozyzej to komplenta bzdura

    A.L.


  • 10. Data: 2014-01-19 02:02:25
    Temat: Re: generowanie programow
    Od: g...@g...com

    W dniu sobota, 18 stycznia 2014 23:36:27 UTC+1 użytkownik A. L. napisał:

    > >Mam nadzieje, ze to odpowiada na Twoje pytanie.
    >
    > Tak.
    >
    > To co napiales pozyzej to komplenta bzdura

    W jakim sensie jest to kompletna bzdura?
    Albo: co z tego, co napisalem, jest kompletna bzdura
    i dlaczego?
    Rzecz w tym, ze odpowiedzi w rodzaju takich, ktore
    mi udzielasz (np. "to jest kompletna bzdura", albo
    "Gosciu, czy ty kiedys programwoales profesjonalnie,
    czy tylk oze sluchu?") nie sa dla mnie szczegolnie
    informatywne, i jezeli masz odpowiadac w taki sposob,
    to rownie dobrze mozesz darowac sobie wypowiedz.

    Nie interesuja mnie stwierdzenia, za ktorymi nie
    stoja jakies wyjasnienia czy argumenty, poniewaz
    cel wypowiadania takich stwierdzen raczej nie jest
    merytoryczny, tylko erystyczny.

    Dla mnie sens tego, co napisalem, wydaje sie
    dosc oczywisty. Moze warto by to bylo zilustrowac
    przykladem. Zeby nie szukac daleko, posluze sie tym
    pochodzacym od autorow prezentacji.

    Funkcyjna, rekurencyjna definicja funkcji "append"
    w lispie, sklejajaca ze soba dwie listy, wyglada
    nastepujaco

    (define (append l s)
    (cond
    ((null? l) s)
    (else (cons (car l) (append (cdr l) s)))))

    na przyklad
    (append '(1 2 3) '(4 5)) zwroci (1 2 3 4 5)

    Funkcje te mozna przepisac do systemu programowania
    w logice "kanren" wedlug zarysowanej powyzej metody,
    uzyskujac nastepujacy kod:

    (define (appendo l s out)
    (conde
    ((== '() l) (== s out))
    ((fresh (a d res)
    (== `(,a . ,d) l)
    (== `(,a . ,res) out)
    (appendo d s res)))))

    gdzie == jest operatorem unifikacji, fresh sluzy
    do wprowadzania nowych zmiennych, zas conde jest
    kanrenowym odpowiednikiem operatora cond.

    Nie przedstawiam tutaj szczegolowo semantyki
    kanrena, bo po pierwsze sam jej dobrze nie znam,
    a po drugie caly proces jest wyjasniony w prezentacji.

    Istotne jest to, ze majac tak zdefiniowana funkcje,
    mozna uruchomic ja w kanrenowym unifikatorze, w
    nastepujace sposoby:

    (run* (q) (appendo '(a b c) '(d e) q))
    zwroci
    (a b c d e)

    ale rowniez mozna unifikowac "od tylu":
    (run* (q) (appendo '(a b c) q '(a b c d e)))
    da nam
    (d e)

    itd.

    Skladnia moze nie jest tak elegancka, jak
    w prologu, poniewaz unifikacja jest dokonywana
    w jawny sposob, ale dla osoby znajacej podstawy
    lispa sens powinien byc mniej wiecej do
    uchwycenia, nawet jesli moze miec klopot
    ze szczegolami.

    [...] przepisac program napisany
    > > >w stylu funkcyjnym na "program w logice"
    > > >(poprzez dopisanie dodatkowego argumentu,
    > > >majacego reprezentowac wynik),
    >
    > Chodzi o to w jaki sposob "dopisanie argumentu"
    > nagle powoduje ze mamy "program w logice"

    OK, rozumiem, o co chodzi. Jezeli idzie o to
    wyjasnienie, to oczywiscie dopisanie dodatkowego
    argumentu nie jest warunkiem dostatecznym, ale jest
    (dla przyjetej przez autorow metody) warunkiem
    koniecznym. Nie opisywalem tego procesu w calosci,
    poniewaz to jest zawarte w prezentacji, zas moim
    celem bylo jedynie zarysowanie tego, co tam sie
    dzieje, zeby grupowicze mogli ocenic, czy temat
    jest dla nich interesujacy, i ewentualnie obejrzec.

    Jezeli dla Ciebie nie jest, to ja nie mam z tym
    problemu.

strony : [ 1 ] . 2


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: