-
Data: 2013-12-23 14:48:03
Temat: Re: Detekcja wzorców w języku, metody
Od: Adam Przybyla <a...@r...pl> szukaj wiadomości tego autora
[ pokaż wszystkie 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
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
Najnowsze wątki
- 2025-08-06 Gdynia => Konsultant wdrożeniowy (systemy controlingowe) <=
- 2025-08-06 Białystok => Inżynier oprogramowania .Net <=
- 2025-08-06 "[...] sejmowe wystąpienie posłanki Klaudii Jachiry, która zakończyła je słowami ,,Sława Ukrainie"."
- 2025-08-05 "Chiny przekraczają w wydobyciu 4 mld ton węgla, Indie i USA ponad 1 mld, a Rosja 500 mln ton [...]"
- 2025-08-05 Panuje się 181 159,42 zł./mies. na posła w 2026r.
- 2025-08-05 "Chiny przekraczają w wydobyciu 4 mld ton węgla, Indie i USA ponad 1 mld, a Rosja 500 mln ton [...]"
- 2025-08-05 Czy cos fi przechodzi przez trafo separujące?
- 2025-08-05 kajaki i promile
- 2025-08-05 Re: Tesla jest bezpieczna, wczoraj spaliła się doszczętnie na Ursynowie i nikomu się nic nie stało
- 2025-08-05 Gdynia => Przedstawiciel handlowy / KAM (branża TSL) <=
- 2025-08-05 Re: Atak na lekarza w Oławie. Policja zatrzymała sprawcę na lotnisku Polska Agencja Prasowa 4 sierpnia 2025, 12:16 FACEBOOK X E-MAIL KOPIUJ LINK W szpitalu w Oławie 37-letni pacjent zaatakował lekarza, po tym, jak ten odmówił mu wypisania długoterminowego
- 2025-08-05 B2B i książka przychodów i rozchodów
- 2025-08-04 Re: Atak na lekarza w Oławie. Policja zatrzymała sprawcę na lotnisku Polska Agencja Prasowa 4 sierpnia 2025, 12:16 FACEBOOK X E-MAIL KOPIUJ LINK W szpitalu w Oławie 37-letni pacjent zaatakował lekarza, po tym, jak ten odmówił mu wypisania długoterminowego
- 2025-08-04 Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- 2025-08-04 Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML