-
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
Najnowsze wątki z tej grupy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
Najnowsze wątki
- 2025-03-08 Środa Wielkopolska => SAP FI/CO Konsultant wewnętrzny <=
- 2025-03-08 Prawo "gminne"
- 2025-03-08 Warszawa => Senior Recruiter <=
- 2025-03-08 Warszawa => Key Account Manager IT <=
- 2025-03-08 Najszybciej ładujące się samochody elektryczne
- 2025-03-07 AION przejety
- 2025-03-07 Warszawa => Data Engineer (Tech Leader) <=
- 2025-03-07 Gliwice => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-03-07 Warszawa => System Architect (background deweloperski w Java) <=
- 2025-03-07 Gliwice => Business Development Manager - Network and Network Security
- 2025-03-07 Chiny-Kraków => Senior PHP Symfony Developer <=
- 2025-03-07 Gliwice => IT Expert (Network Systems area) <=
- 2025-03-07 Chiny-Kraków => Backend Developer (Node + Java) <=
- 2025-03-07 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-03-07 Warszawa => International Freight Forwarder <=