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
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
Nazwa padła ofiarą szantażystów, inni polscy hosterzy też zagrożeni?
22
Darmowy Internet od Aero2. Jak go zdobyć i jakie są prawdziwe koszta? Instrukcja krok po kroku
11
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
17
Premiera Diablo 3 wzbudziła dyskusję na temat gier, które zawsze chcą być online
19
Nowy problem z Windows 8: bootuje się za szybko
10
Amerykańscy rodzice straszeni „e-narkotykami” dostępnymi w Sieci
21
Anonymous upubliczniają 1,7 GB danych wykradzionych Departamentowi Sprawiedliwości USA
12
Blueseed: libertariańska sztuczna wyspa przyciągnęła już ponad sto startupów z całego świata
8
Rewolucja w Firefoksie, nowa łatka czterokrotnie ograniczyła zużycie pamięci
20
Darmowy Internet od Aero2. Jak go zdobyć i jakie są prawdziwe koszta? Instrukcja krok po kroku
11
CVDazzle: makijaż jest w stanie pokonać automatyczne systemy ulicznego monitoringu
3
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
17
Ubuntu 12.04 LTS już dostępny: stabilna dystrybucja na następne pięć lat?
28
Zostań webmasterem polskiego rządu, zarobisz na komfortowe życie dla siebie i swojej rodziny
33
Społeczność
Daresh A ja na pulpicie nie mam żadnych ikon i nie potrzebuję takich narzędzi :)
buahahaha @xyz: jak będzie wybór między MS ograniczającym wybór a Apple...
xyz @bartez® : Uważasz, że Apple nie ogranicza programistów? buahahaha
anga star za droga ludzie wy myślicie!?Jestem 4 klasistką rodzice się nigdy nie...
Jan Zwyczajnych filmów tak kręcić się nie da co najwyżej krótkie scenki jak w...
piotrek____ @asdfgh - yup, też tak sądzę.
Tak jak wtedy ten przeciek o żołnierzu...
gonzales Javowcy pozdrawiają dotnetowców xD
- Najdmen.pl: Konta www z wyłączonym licznikiem transferu od IONIC.pl (1)
- 2BE.PL: [Oferta] Promocja jak złoto w 2BE.PL (1)
- 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)
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)