eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingDetekcja wzorców w języku, metodyDetekcja wzorców w języku, metody
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!.POSTED!not-for-mail
    From: Sebastian Biały <h...@p...onet.pl>
    Newsgroups: pl.comp.programming
    Subject: Detekcja wzorców w języku, metody
    Date: Fri, 20 Dec 2013 21:03:51 +0100
    Organization: ATMAN - ATM S.A.
    Lines: 57
    Message-ID: <l927rf$h5e$1@node1.news.atman.pl>
    NNTP-Posting-Host: 193.0.194.227
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: node1.news.atman.pl 1387569839 17582 193.0.194.227 (20 Dec 2013 20:03:59
    GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Fri, 20 Dec 2013 20:03:59 +0000 (UTC)
    User-Agent: Mozilla/5.0 (Windows NT 6.0; rv:24.0) Gecko/20100101 Thunderbird/24.2.0
    Xref: news-archive.icm.edu.pl pl.comp.programming:204776
    [ ukryj nagłówki ]

    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.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

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: