eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingDetekcja wzorców w języku, metody
Ilość wypowiedzi w tym wątku: 11

  • 1. Data: 2013-12-20 21:03:51
    Temat: Detekcja wzorców w języku, metody
    Od: Sebastian Biały <h...@p...onet.pl>

    Mam język imperatywny. Nie ważne jaki, wszystkie są w zasadzie identyczne.

    Język ten słuzy do programowania w pewnej wąskiej grupie zastosowań,
    gdzie używane są pewne charakterystyczne "wzorce projektowe".

    Nie mają one za duzo wspólnego z wzorcami OO, ale po chwili namysłu
    odpowiadam, że w zasadzie chodzi o coś bardzo podobnego w idei detekcji.
    Programista patrząc w kod widzi własnie taki wzorzec.

    Teraz ja chciałbym spojrzeć w kod i go dostrzec. Automatycznie.

    Kod ma masę szumu. Od trywializmów typu komentarze, przez i++, ++i a
    kończąc na wymianach całych bloków kodu na inne analogi. Ale to dalej
    implementacja wzorca, tylko czasem nie wprost.

    Na razie ostrożnie badam teren. To co udało mi się przeczytać
    publikowane na przestrzeni ostatnich kilku lat (i dostepne od reki z
    Googla) sprowadza się zazwyczaj do prostego mechnizmu:

    1) przeparsuj i zbuduj AST
    2) AST->Prolog

    Prolog czasem z odatkami typu fuzzy logic. Prawie cała literatura kręci
    się wokół OO design patterns w Javie.

    Ale ponieważ tematu nie znam i może mam złe przykłady to:

    a) Czy AST->Prolog lub inny język logiczny jest obecnie najczęstszym
    rozwiązaniem? Oczywiście wliczając w to Prolog-like embedded engines.

    b) Może istnieje jakiś framework który jest na tyle abstrakcyjny że nie
    zależy od skladni badanego języka? Coś do badania składni ogólnie co
    spełnia moje marzenia o klasyfikacji?

    c) Może to się robi kompletnie inaczej?

    Mam *wrażenie* że detekcja wzorców w kodzie jest powszechna w
    narzedziach typu lint. Interesuje mnie chwilowo podejście akademickie.
    Typu "czy to w ogóle jest mozliwe" więc nie szukam rozwiązań
    produkcyjnych, ale bardziej potwierdzenia/zaprzeczenia tezy że się da.

    Żeby była jasność: wyobrażam sobie takie coś:

    to Fred
    {
    jeśli zmienna x jest int
    jeśli jest uzywa w pętli
    jesli zaczyna się od 0 i kończy na zmiennej y inkrementując co 2
    jesli w srodku jest przynajmniej jeden break
    jesli w środku nie ma continue
    jesli w srodku mamy pętlę while gdzie x jest zmniejszane
    }

    Algorytm ma odpowiedzieć na pytanie "czy to jest Fred" po zobaczeniu
    niezbędnego kawalka kodu.

    Zagadnienia parsowania są nieistotne. Parser jest.


  • 2. Data: 2013-12-20 22:26:38
    Temat: Re: Detekcja wzorców w języku, metody
    Od: Adam Klobukowski <a...@g...com>

    On Friday, 20 December 2013 21:03:51 UTC+1, Sebastian Biały wrote:

    <ciach>

    Najprościej chyba dało by się wykryć singletona.

    Co do innych, myślę że trzeba sobie zrobić graf interakcji pomiędzy klasami, co co
    wywułuje, jakie są argumenty itp. Takie grafy powinno dac się automatycznie
    porównywać z 'wzorcowymi' grafami wzorców projektówych.

    AdamK


  • 3. Data: 2013-12-21 03:46:31
    Temat: Re: Detekcja wzorców w j?zyku, metody
    Od: A.L. <a...@a...com>

    On Fri, 20 Dec 2013 21:03:51 +0100, Sebastian Bia?y
    <h...@p...onet.pl> wrote:

    >Mam język imperatywny. Nie ważne jaki, wszystkie są w zasadzie identyczne.
    >
    >Język ten słuzy do programowania w pewnej wąskiej grupie zastosowań,
    >gdzie używane są pewne charakterystyczne "wzorce projektowe".
    >
    >Nie mają one za duzo wspólnego z wzorcami OO, ale po chwili namysłu
    >odpowiadam, że w zasadzie chodzi o coś bardzo podobnego w idei detekcji.
    >Programista patrząc w kod widzi własnie taki wzorzec.
    >
    >Teraz ja chciałbym spojrzeć w kod i go dostrzec. Automatycznie.
    >
    >Kod ma masę szumu. Od trywializmów typu komentarze, przez i++, ++i a
    >kończąc na wymianach całych bloków kodu na inne analogi. Ale to dalej
    >implementacja wzorca, tylko czasem nie wprost.
    >
    >Na razie ostrożnie badam teren. To co udało mi się przeczytać
    >publikowane na przestrzeni ostatnich kilku lat (i dostepne od reki z
    >Googla) sprowadza się zazwyczaj do prostego mechnizmu:
    >
    >1) przeparsuj i zbuduj AST
    >2) AST->Prolog


    Co to jest AST-> Prolog, i co w ogole Prolog ma do rzeczy?

    Caly ped do wzorcow stracil rozped dosyc dawno temu - patrzac na kod
    nei da sie wyodrebnic wzorcow. Inaczej niz w przypadku ukladow
    elektronicznych - inzynier elektronik, patzrac na schemat, od razu
    powie co jest co.

    Patzrac na program, ani go analizujac czymkolwiek, wyodrebnic wzorcow
    sie nie da. Miedzy innymi dlatego ze wzorce zdefiniowane sa metoda
    machania rekami

    A.L.


  • 4. Data: 2013-12-21 03:47:18
    Temat: Re: Detekcja wzorców w języku, metody
    Od: A.L. <a...@a...com>

    On Fri, 20 Dec 2013 13:26:38 -0800 (PST), Adam Klobukowski
    <a...@g...com> wrote:

    >. Takie grafy powinno dac się automatycznie porównywać z 'wzorcowymi' grafami
    wzorców projektówych.

    A gdzie takie grafy sa zdefiiowane?

    A.L.


  • 5. Data: 2013-12-21 08:29:26
    Temat: Re: Detekcja wzorców w j?zyku, metody
    Od: Sebastian Biały <h...@p...onet.pl>

    On 2013-12-21 03:46, A.L. wrote:
    >> 1) przeparsuj i zbuduj AST
    >> 2) AST->Prolog

    > Co to jest AST-> Prolog, i co w ogole Prolog ma do rzeczy?

    http://cs.nju.edu.cn/~gchen/paper/gcc2003/pdf/097.pd
    f
    http://ir.nul.nagoya-u.ac.jp/jspui/bitstream/2237/14
    977/1/406.pdf

    Takich artykułów gdzie Prolog uzywany jest do ostatecznej klasyfikacji
    jest ogromna ilość i prawdę mówiąc z dziesiątek rzeczy osiągalnych na
    google nie widziałem nic specjalnie innego. Dlatego pytam, czy oznacza
    to rownież aktualny stan wiedzy. Daty są raczej w większości >2005.

    > Caly ped do wzorcow stracil rozped dosyc dawno temu - patrzac na kod
    > nei da sie wyodrebnic wzorcow.

    I tutaj mam zrelaksowane założenia - jesli nie wykryje - nic się nie stanie.

    > Inaczej niz w przypadku ukladow
    > elektronicznych - inzynier elektronik, patzrac na schemat, od razu
    > powie co jest co.

    O i tu masz znakomity przykład potrzeby detekcji. Narzędzia syntezy
    *muszą* wykrywać wzorce "elektroniczne" w kodzie HDL aby poprawnie
    wykorzystywać zasoby. W przeciwnym wypadku idą do śmieci bo konkurencja
    potrafi.

    > Patzrac na program, ani go analizujac czymkolwiek, wyodrebnic wzorcow
    > sie nie da. Miedzy innymi dlatego ze wzorce zdefiniowane sa metoda
    > machania rekami

    To wystarczająca definicja. Patrzący na te wzorce używa tych samych
    definicji. Czyli ich jakość nie jest istotna. Istotne dla mnie jest
    tylko sensowniejsze niż przypadkowe wykrycie. "O, tu masz chyba Freda"
    będzie ok.


  • 6. Data: 2013-12-21 08:32:20
    Temat: Re: Detekcja wzorców w języku, metody
    Od: Sebastian Biały <h...@p...onet.pl>

    On 2013-12-20 22:26, Adam Klobukowski wrote:
    > Najprościej chyba dało by się wykryć singletona.

    Nie chodzi o dowód czy da się wykryć *coś*. Chodzi o dowód że da się
    wykryć *mój*. Rozglądam się za czymś co pozwala mi na swobodę eksperymentu.

    > Co do innych, myślę że trzeba sobie zrobić graf interakcji pomiędzy klasami

    Nie ma klas. Jak mówiłem to nie jest OO. Z grubsza to zwykły kod
    strukturalny.


  • 7. Data: 2013-12-21 08:56:12
    Temat: Re: Detekcja wzorców w języku, metody
    Od: Adam Klobukowski <a...@g...com>

    On Saturday, 21 December 2013 03:47:18 UTC+1, A. L. wrote:
    > On Fri, 20 Dec 2013 13:26:38 -0800 (PST), Adam Klobukowski
    >
    > <a...@g...com> wrote:
    >
    > >. Takie grafy powinno dac si� automatycznie por�wnywa� z 'wzorcowymi'
    grafami wzorc�w projekt�wych.
    >
    > A gdzie takie grafy sa zdefiiowane?

    Nigdzie. Trzeba sobie je samemu wymyśleć (na podstawie definicji wzorców projektowych
    rzecz jasna).

    AdamK


  • 8. Data: 2013-12-21 17:47:56
    Temat: Re: Detekcja wzorców w j?zyku, metody
    Od: A.L. <a...@a...com>

    On Sat, 21 Dec 2013 08:29:26 +0100, Sebastian Biały
    <h...@p...onet.pl> wrote:

    >On 2013-12-21 03:46, A.L. wrote:
    >>> 1) przeparsuj i zbuduj AST
    >>> 2) AST->Prolog
    >
    >> Co to jest AST-> Prolog, i co w ogole Prolog ma do rzeczy?
    >
    >http://cs.nju.edu.cn/~gchen/paper/gcc2003/pdf/097.p
    df
    >http://ir.nul.nagoya-u.ac.jp/jspui/bitstream/2237/1
    4977/1/406.pdf
    >
    >Takich artykułów gdzie Prolog uzywany jest do ostatecznej klasyfikacji
    >jest ogromna ilość i prawdę mówiąc z dziesiątek rzeczy osiągalnych na
    >google nie widziałem nic specjalnie innego. Dlatego pytam, czy oznacza
    >to rownież aktualny stan wiedzy. Daty są raczej w większości >2005.
    >
    >> Caly ped do wzorcow stracil rozped dosyc dawno temu - patrzac na kod
    >> nei da sie wyodrebnic wzorcow.
    >
    >I tutaj mam zrelaksowane założenia - jesli nie wykryje - nic się nie stanie.
    >
    >> Inaczej niz w przypadku ukladow
    >> elektronicznych - inzynier elektronik, patzrac na schemat, od razu
    >> powie co jest co.
    >
    >O i tu masz znakomity przykład potrzeby detekcji. Narzędzia syntezy
    >*muszą* wykrywać wzorce "elektroniczne" w kodzie HDL aby poprawnie
    >wykorzystywać zasoby. W przeciwnym wypadku idą do śmieci bo konkurencja
    >potrafi.
    >
    >> Patzrac na program, ani go analizujac czymkolwiek, wyodrebnic wzorcow
    >> sie nie da. Miedzy innymi dlatego ze wzorce zdefiniowane sa metoda
    >> machania rekami
    >
    >To wystarczająca definicja. Patrzący na te wzorce używa tych samych
    >definicji. Czyli ich jakość nie jest istotna. Istotne dla mnie jest
    >tylko sensowniejsze niż przypadkowe wykrycie. "O, tu masz chyba Freda"
    >będzie ok.

    Personalnie, uwazam to za zawracanie glowy. Dopoki sie nie pojawi
    formalny jezyk do opisywania wzorcow, to takie papiery jek powyzej
    mozna....

    Przy czym przez "fornalny jezyk" rozumiem formalny jezyk. Tak zwany
    UML nie jest ani jezykiem, ani nie jest formalny

    A.L.


  • 9. Data: 2013-12-21 18:49:34
    Temat: Re: Detekcja wzorców w j?zyku, metody
    Od: Sebastian Biały <h...@p...onet.pl>

    On 2013-12-21 17:47, A.L. wrote:
    > Personalnie, uwazam to za zawracanie glowy. Dopoki sie nie pojawi
    > formalny jezyk do opisywania wzorcow, to takie papiery jek powyzej
    > mozna....

    Hmmm a znasz jakieś próby tworzenia takowego?


  • 10. Data: 2013-12-21 20:34:44
    Temat: Re: Detekcja wzorców w j?zyku, metody
    Od: A.L. <a...@a...com>

    On Sat, 21 Dec 2013 18:49:34 +0100, Sebastian Biały
    <h...@p...onet.pl> wrote:

    >On 2013-12-21 17:47, A.L. wrote:
    >> Personalnie, uwazam to za zawracanie glowy. Dopoki sie nie pojawi
    >> formalny jezyk do opisywania wzorcow, to takie papiery jek powyzej
    >> mozna....
    >
    >Hmmm a znasz jakieś próby tworzenia takowego?


    Pogogluj na

    formal language for programming patterns

    To i owo jest, sa proby, ale nic konkretnego

    A.L.

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: