RE2: wyrażenia regularne na automatach komórkowych od Google'a
Wyrażenia regularne to jedno z podstawowych narzędzi każdego programisty, lubiane zresztą chyba przez wszystkich zaawansowanych użytkownikow komputerów. Towarzyszą nam od lat siedemdziesiątych, kiedy to Ken Thompson wprowadził w edytorze tekstowym QED. Jednak korzystanie ze złożonych regexpów oznacza często kłopoty – niekontrolowane zużycie stosu i wykładniczo rosnący czas realizacji. Problem tkwi w algorytmie znanym jako backtracking.
Backtracking to ogólny sposób rozwiązywania niektórych problemów informatycznych, w którym stopniowo buduje się kandydatów na rozwiązania, a następnie porzuca każdego częściowego kandydata, zaraz jak tylko ustalone zostanie, że nie może on przynieść kompletnego rozwiązania.
Metoda ta jest stosowana w praktycznie wszystkich implementacjach wyrażeń regularnych, korzystają z niej takie klasyczne narzędzia jak sed, grep czy awk, trafiła też do popularnych języków skryptowych, takich jak Perl, JavaScript czy Python. Jak pisze Russ Cox, inżynier z Google'a, w Mountain View korzysta się z regexpów jako interfejsu do wielu zewnętrznych i wewnętrznych systemów – w tym Code Search, Sawzall i BigTable. Systemy te przetwarzają wielkie ilości danych, więc realizacja operacji przy wykładniczo rosnącym czasie jest nie do przyjęcia.
Na szczęście istnieje inne podejście do wyrażeń regularnych – wykorzystuje ono teorię automatów komórkowych i gwarantuje realizację operacji w liniowym czasie, przy ustalonym rozmiarze stosu. Korzystając z tego podejścia Google stworzyło bibliotekę RE2, która stanowi zamiennik dla znanych powiązań PCRE dla C++.
Teraz biblioteka RE2 została wydana na wolnej licencji BSD – każdy programista może zastosować ją w swoich projektach. Dokumentacja oraz kod źródłowy dostępne są na stronie code.google.com/p/re2/. Osoby zainteresowane matematycznymi szczegółami implementacji wyrażeń regularnych za pomocą automatów komórkowych powinny zerknąć na stronę swtch.com/~rsc/regexp/regexp1.html.
Źródło: google-opensource.blogspot.com
Polecamy
Reklama
Komentarze
Aby dodać komentarz, musisz podać swój nick, treść komentarza oraz poprawnie przepisać oba słowa z obrazka
(słowa muszą być rozdzielone spacją).
W treści komentarza można używać języka formatowania BBcode.
Popularne
Pobierałeś pirackie pliki? Uważaj! Kontrole antypirackie w domach użytkowników to codzienność
35
Pobieraczek.pl pozwie internautów, którzy nie chcą płacić abonamentu
1455
Debata w sprawie ACTA: internauci spodziewali się chyba czegoś innego
14
Wynalazca WWW przed sądem: walczy tam o wolny dostęp do webowych technologii dla każdego
8
PHP 5.3.9 nie pozwoli hakerom zawiesić serwera. Pozwoli za to przejąć nad nim kontrolę
28
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
15
Internet w EU bez Facebooka i Google? Firmy nie mają wyboru: albo się dostosują, albo…
10
MSWiA zamówiło narzędzia do „złamania” Tora i podsłuchiwania internautów. Czy złamało przy tym prawo?
89
[Aktualizacja] Facebook zablokował Demotywatory.pl. W czym zawiniły?
36
FBI zamknęło Megaupload. Anonimowi dali się sprowokować. Teraz ich akcja uzasadni potrzebę SOPA?
17
Pobieraczek.pl pozwie internautów, którzy nie chcą płacić abonamentu
1455
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
15
„Donald matole, twój rząd dopadną kibole” – hakerska elita przyłącza się do walki z ACTA
23
Klamka jeszcze nie zapadła. Minister prosi Donalda Tuska, by wstrzymał się z podpisywaniem ACTA
24
Społeczność
slawek22 >są inne rodzime serwisy VOD z legalny filmami
WebDev no fakt... jeśli...
WebDev @BLACK BEAR®
"bo denerwujesz mi ludzi na forum” lool
Minister Zdrowia...
tobas ClickShop bardzo wolno działa!!!
Nie dajcie się nabrać na wygląd i...
blackbear @WebDev, widzę że muszę Ci rozjaśnić we łbie. Czytaj więc i nie pisz...
Jay Brak obsługi aplikacji x86/x64 ze zwykłych desktopów to kręcenie na siebie...
WebDev @slawek22
Tak jak ze wszystkim tak i z prawem własności można przesadzić...
Nie dla ACTA. Nie dla INDECT. Nie dla europejskiego superpaństwa policyjnego. "rejestruje dane statyczne tj. wygląd podpisu, jak i dynamiczne: czas...
- gardius: Dobra hurtownia sportowa (1)
- gardius: Tanie książki gdzie warto kupować? (1)
- Najdmen.pl: PROMOCJA, 500 DOMEN .EU ZA 1 PLN NETTO ! (1)
- VMLine: [Oferta] Serwery VPS Xen-HVM/OpenVZ z darmową administracją (2)
- Marek: Generowanie PDFa (2)
- Marek: problem z menu (2)
- Marek: Własne checkboxy w HTML,CSS (1)
Polecane książki
Praca
Czytaj Webhosting
Chcesz być na bieżąco z naszymi informacjami? Zapisz się na Newsletter.
Zarejestruj domenę
Sprawdź dostępność swojej domeny:
| .pl: | 0 zł | .com: | 19.90 zł | |
|---|---|---|---|---|
| .com.pl: | 0 zł | .eu: | 19.90 zł |









#1 Jan Koprowski® 2010-03-15 09:02:38 0
IP: 192.198.151.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.89 Safari/532.5
#2 gość przypadkowy 2011-03-07 10:30:00 0
IP: 62.233.147.[...] Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)