Blog (76)
Komentarze (1.5k)
Recenzje (3)
@Jaahquubel_Języki bezprefiksowe a Opera

Języki bezprefiksowe a Opera

06.12.2012 18:58

Nie ma nic bardziej praktycznego, niż dobra teoria, na początek więc garść definicji.

Język jest to podzbiór zbioru wszystkich słów nad skończonym alfabetem. Inaczej, jest to pewien zbiór ciągów znaków, gdzie zbiór znaków jest ustalony i skończony.

Chodzi tu o to, żeby nie myśleć o języku w kontekście języka polskiego, angielskiego itp., a jako o dowolnym zbiorze czegokolwiek wstukanego na jakiejkolwiek (teoretycznej) klawiaturze.

Słowo x jest przedrostkiem (prefiksem) słowa y, jeśli słowo y jest postaci xz.

Mówiąc po ludzku, przedrostek/prefiks to początek słowa, sam będący słowem.

Język bezprefiksowy to język, w którym żadne ze słów nie jest prefiksem innego słowa.

Językiem bezprefiksowym jest np. taki prosty, dwuelementowy język: [code]mama tata[/code]

Jest nim też: [code]forum formuła[/code] choć oba słowa mają wspólny prefiks - ale ten prefiks nie jest słowem w tym języku.

Nie jest takim językiem za to: [code]bateria bat[/code] bo słowo "bat" jest prefiksem "bateria".

Języki takie są bardzo wygodne - jeśli wczytując słowo (znak po znaku, jak małe dziecko) złapiemy już jakieś znaczenie, to znaczy, że wczytaliśmy już całe słowo. Najlepiej zobaczyć to na kontrprzykładzie bat/bateria: przeliterowałem sobie "bat" - ma to sens, poznaję takie słowo (z tego języka), ale nie mam pewności, czy to już koniec słowa, czy mam czytać dalej - albo znajdę literę "e" (bo jest to "bateria"), albo nic nie znajdę, bo się słowo skończyło.

Co ma do tego Opera?

Najpierw wypada wiedzieć co to jest Krótka nazwa w tej przeglądarce.

A teraz gwóźdź programu: skrót klawiszowy Shift+F2. Wywołuje on w Operze następujące okienko:

441212

Gdy wpiszemy w tym okienku krótką nazwę strony, Opera przeniesie nas do tej strony. Krótką nazwę, bez wciskania Enter! Ale... to pod warunkiem, że dana krótka nazwa nie jest jednocześnie prefiksem innej krótkiej nazwy.

Przykład

Przyjmijmy, że mamy w Operze zdefiniowane 3 krótkie nazwy: "dp" dla wiadomo jakiej strony, "forum" dla forum DP i "for" dla jakiegoś bardzo ciekawego artykułu o pętlach FOR w przeróżnych językach programowania (nie żebym znał taki - po prostu nic lepszego nie zmyśliłem). Naciśnięcie Shift+F2 i wpisanie "dp" przeniesie nas na DP, ale wpisanie "for" nie zrobi nic - bo jest niejednoznaczność. Jeśli chcemy przejść do tego ciekawego artykułu, musimy nadusić wówczas Enter, a jeśli chodziło o forum DP, musimy dopisać "u" - jak Opera zobaczy "foru", będzie wiedziała, że chodzi o "forum". Nie trzeba kończyć krótkich nazw - wystarczy dojść do jednoznaczności!

Ale

Tyle pięknej teorii, teraz wypada pomyśleć jak ją zastosować.

Podejście 1.

Przeglądasz wszystkie swoje krótkie nazwy i tak je zmieniasz, żeby układały się w język bezprefiskowy. Efekt? Zapominasz jak je pozmieniałeś i ciągle się mylisz. :)

Podejście 2.

Przeglądasz wszystkie swoje krótkie nazwy i tak je zmieniasz, żeby układały się w język bezprefiskowy, tym razem jednak robisz tak, żeby były to dobre nazwy - łatwe do zapamiętania, wiele mówiące. Efekt? Krótkie nazwy stały się za długie, przez co trzeba się nieopłacalnie dużo nastukać w klawiaturę. A przecież chodzi o to, żeby było szybko!

Podejście 3.

Trzeba zauważyć jeszcze jedną rzecz. Elementem alfabetu, nad którym tworzymy język krótkich nazw może być przecież sam Enter (nawet numer ASCII ma). Wiedząc to, przyglądasz się swoim krótkim nazwom i stwierdzasz, że: skoro rzadko które mają wspólny prefiks i wszystkie albo są jedno-dwuliterowe (czyli w najgorszym razie dwu‑trzyznakowe, licząc Enter), albo zaczynają się różnić już na 3 znaku, to 3 klawisze (dwa znaki+Enter lub trzy znaki dające jednoznaczność), to nie za wiele, jak na krótką nazwę, więc zostawiasz swoje krótkie nazwy bez zmian.

Ale o ile więcej wiesz o języku swoich krótkich nazw!

Wybrane dla Ciebie
Komentarze (3)