eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingDetekcja wzorców w języku, metodyRe: Detekcja wzorców w języku, metody
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!polsl.pl!not-for-mail
    From: Adam Przybyla <a...@r...pl>
    Newsgroups: pl.comp.programming
    Subject: Re: Detekcja wzorców w języku, metody
    Date: Mon, 23 Dec 2013 13:48:03 +0000 (UTC)
    Organization: Politechnika Slaska, Gliwice
    Lines: 72
    Message-ID: <l99euj$d9v$1@polsl.pl>
    References: <l927rf$h5e$1@node1.news.atman.pl>
    NNTP-Posting-Host: jarowit.net
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: 8bit
    X-Trace: polsl.pl 1387806483 13631 91.228.196.245 (23 Dec 2013 13:48:03 GMT)
    X-Complaints-To: n...@p...pl
    NNTP-Posting-Date: Mon, 23 Dec 2013 13:48:03 +0000 (UTC)
    User-Agent: tin/1.9.6-20100522 ("Lochruan") (UNIX)
    (Linux/2.6.18-238.19.1.el5.028stab092.2 (i686))
    Xref: news-archive.icm.edu.pl pl.comp.programming:204801
    [ ukryj nagłówki ]

    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
    >
    > 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.
    ... ja kiedys podsze3dlem do takiego problemu troche inaczej:
    parser+tdd+wlasny kod
    akurat w mom przypadku byl to ANTLR,TDD i Python ale to mozesz sobie wybrac
    dowolnie. Poprzez kolejne testy nakladasz na kod okreslone reguly ktore
    pozniej sam generujesz tworzac heurystyczny, coraz bardziej dokladny algorytm.
    U mnie byla to kwestia webscrapingu i analizy tekstow u ciebie ich przeksztalcanie.
    Pewne przyblizenie znajdziesz w prezentacji jaka miala miejsce na poczatku grudnia
    podczas wroclawskich wroc.py - spotkan uzytkownikow Pythona:
    http://www.linkedin.com/profile/view?id=9402673&goba
    ck=.nmp_*1_*1_*1_*1_*1_*1_*1_*1_*1_*1&trk=spm_pic
    http://www.slideshare.net/AdamPrzybyla/wroc-py2013
    Mysle, ze i tak jestes skazany na wymyslenie wlasnych heurystycznych metod
    rozwiazania tego
    problemu, zadna czarna skrzynka prologowo-lispowa Ci tu nie pomoze;-)
    Z powazaniem
    Adam Przybyla

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj

Najnowsze wątki z tej grupy


Najnowsze wątki

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: