-
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.
Następne wpisy z tego wątku
- 20.12.13 22:26 Adam Klobukowski
- 21.12.13 03:46 A.L.
- 21.12.13 03:47 A.L.
- 21.12.13 08:29 Sebastian Biały
- 21.12.13 08:32 Sebastian Biały
- 21.12.13 08:56 Adam Klobukowski
- 21.12.13 17:47 A.L.
- 21.12.13 18:49 Sebastian Biały
- 21.12.13 20:34 A.L.
- 23.12.13 14:48 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-02-10 Spalił się spaliniak
- 2025-02-10 zarowka wifi - z sensowna apka lub lepiej albo lokalnie lub przez web. I zeby harmonogram miala
- 2025-02-10 Chrzanów => Programista NodeJS <=
- 2025-02-10 Kraków => DevOps Engineer (Junior or Regular level) <=
- 2025-02-10 Dlaczego takie preferencje banków?
- 2025-02-10 Białystok => iOS Developer (Swift) <=
- 2025-02-10 Mińsk Mazowiecki => Team Lead / Tribe Lead FrontEnd <=
- 2025-02-10 Białystok => System Architect (Java background) <=
- 2025-02-10 Współczesne mierniki zniekształceń nieliniowych THD audio, produkują jakieś?
- 2025-02-10 Szczecin => Senior Field Sales (system ERP) <=
- 2025-02-10 Gliwice => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-02-10 Chrzanów => Specjalista ds. public relations <=
- 2025-02-10 Chrzanów => NodeJS Developer <=
- 2025-02-10 Warszawa => JavaScript / Node / Fullstack Developer <=
- 2025-02-10 Gliwice => Ekspert IT (obszar systemów sieciowych) <=