Parser (programovací jazyk)
Paradigma | multiparadigmatický-macro, objektově orientovaný programovací jazyk |
---|---|
Vznikl v | 1997 |
Autor | Alexander Petrosyan, Konstantin Morshnev |
Vývojář | Art. Lebedev Studio |
Poslední verze | 3.3.0 ([04.09.2008]) |
Typová kontrola | Slabá, dynamická |
Ovlivněn jazyky | Perl, Java, C++, HTML |
OS | Multiplatformní: Windows, MacOS, Unix |
Licence | GPL |
Web | http://www.parser.ru |
Parser je programovací jazyk.
Historie
Historie jazyku Parser začíná v roce 1997. Za tvůrce Parseru se považuje Alexandr Petrosjan, který v té době byl jedním z konzultantů ve studiích A. Lebeděva.1
V současné době se Parser v různé míře používá ve všech projektech výše zmíněných studií. Celkem jich je více než 700. Mezi nejznámější projekty, které byly vytvořeny pomocí Parseru, patří například ruská verze serveru „MTV“,2 řada ruských verzí promo-stránek společnosti Microsoft,3 web piva „Bočkarev“,4 stránka mobilního operátora „MTC“,5 stránky bank „Aval“6 a „AB.LV“7 atd.
Od roku 2000 začalo bezplatné šíření této technologie. K tomuto účelu slouží zvláštní internetová stránka, na které si vývojáři můžou stáhnout verze jazyku pro Windows a Linux. Od roku 2001 se objevila podpora FreeBSD a Mac OS.
Původně byl Parser jen modulem pro Apache, později se objevila verze CGI skriptu a rozšíření pro ISS.
Původním cílem, kterému měl sloužit nově vytvořený jazyk, byla možnost tvořit relativně prosté dynamické webové stránky. Mezi specifika nového jazyka patří i to, že měl značně usnadnit tvorbu webových stránek: bez zvláštního úsilí a během poměrně krátké doby byl vývojář schopen vytvořit dynamický obsah.
Myšlenka Parseru je docela prostá a je založená na již existujících dnes profesionálních jazycích, jakým jsou například PHP anebo ASP.
Každá html-stránka napsaná v Parseru, se sestavuje z bloků na straně web serveru (CGI mechanismus) a odesílá se uživateli ve tvaru běžného html-souboru. Bloky, ze kterých se „budují” stránky, dědí všechny stránky webu. Tento postup umožňuje vytvářet v jednotlivých souborech šablony stránek, které se budou dědit všemi stránkami serveru. Pro zvláštní části nebo stránky serveru je možné zděděné moduly předefinovat znovu nebo vytvářet dodatečně. Při použití Parseru úloha změny designu a zpracování celé webové stránky či aplikace spočívá pouze ve změně jen několika šablon a nikoliv celých stránek. Všechny stránky se díky Parseru totiž změní automaticky.
S Parserem mizí potřeba opakovat tentýž html-kod několikrát. Vývojář může stránky dynamicky sestavovat v závislosti na potřebě uživatele. Tato funkcionální zvláštnost Parseru dovoluje snadno vytvářet interaktivní webové aplikace: psát guestbooky, fóra, chaty, popř. formuláře pro hlasování návštěvníků stránek. Přístup k databázím a práce s nimi se do značné míry usnadňují. Veškeré zmíněné úkony, popř. změny je možné provádět rychle a bez složitého programování.
Tvorba webových stránek v Parseru směřuje k tomu, že v případě bloků vytvořených pomocí speciálních instrukcí, je definováno, kam je třeba je zasadit a v jakém pořadí.
Zároveň také standardní modulární složka jazyka umožňuje vytvářet vlastní uživatelské moduly pro konkrétní situace.
Příklad aplikace
Příklad výstupu menu na základě definice získané z konfiguračního souboru (CSV, hodnoty oddělené tabulátorem)
Definiční soubor s tabulkou (sections.cfg)
section_id name uri 1 Úvod / 2 Novinky /news/ 3 Kontakty /contacts/ 4 Ceny /price/ 5 Komentář /gbook/
Skript s html-kódem (pojmenujeme ho například index.html)
@main[] # Soubor main je hlavní metoda. Od ní se záčíná zprácování aplikace # Mřížka je komentář <html> <head> <title>Pokus o tvorbu webové stránky v Parser</title> </head> <body> ^navigation[] </body> </html> @navigation[] # Zde se pro tvorbu menu používá dřív definovaná tabulka ze souboru sections.cfg # Parser probere všechny řádky a vypíše sloupce uri a name $sections[^table::load[sections.cfg]] <ul> ^sections.menu{ <li> <a href="$sections.uri">$sections.name</a> </li> } </ul>
Typy proměnných v Parser
- Řetězec – string
- Číslo – Int double
- Boolean
- Hash
- Třída objektů
- Objekt třídy
- Kód
- Výraz
Syntax
Je opravdu neobvyklý pro ty, kdo se učili dříve jiné programovací jazyky. Navíc se mnohým Parser zdá nešikovným a dokonce i nelogickým jazykem. Psát velké aplikace jazykem s takovouto skladbou je ve srovnání např. s PHP poměrně obtížně.
Funkčnost
Parser nabízí funkcionalitu přiměřenou pro tvorbu malých až středních internetových projektů. Zde se Parser vyrovná jiným jazykům internetového programování. Avšak objeví-li se nutnost napsat něco, co bude přesahovat rámec střední funkcionality, vývojář by měl sáhnout k použití jiných nástrojů.
Výkon
Různé nezávislé testy ukazují, že v matematickém výpočtu a i při práci s databází Parser nedosahuje výsledků PHP.
Dostupnost
Parser představuje poměrně málo rozšířenou technologii. Je poměrně složité najít hosting, který by tento jazyk podporoval. Kvůli tomu je téměř vždy jediným řešením pronajmout si virtuální server a nainstalovat tam Parser samostatně.
Editory s podporou Parser
Zatím není žádný editor nebo IDE, který by pracoval výhradně s Parserem. Vývojář může psát v jakémkoliv textovém editoru. Existují plug-iny pro zvýraznění syntaxe.
- P3_far – plug-in pro FAR.
- P3_mc – plug-in pro Midnight Commander
- P3_ue – plug-in pro editor UltraEdit
- P3_editplus – plug-in pro editor EditPlus
- P3_crimson – plug-in pro editor Crimson Editor
- P3_homesite – plug-in pro editor HomeSite
- P3_emeditor – plug-in pro editor EmEditor
- P3_jedit – plug-in pro editor jEdit
Popularita
Tato otázka se přímo tyká především nezávislých profesionálů. Ale Parser dnes není příliš populární mezi odběrateli, proto se objednávky na psaní skriptů v tomto jazyce takřka nevyskytují.
Rozdíly Parseru od PHP
- Parser je makrojazyk, neobsahuje operator print, syntax PHP je podobný C. Parser je proto sám o sobě schopen zpracovávat šablony, v PHP je nutno používat externí knihovny.
- V Parseru je podpora UTF-8 integrovaná a je pro vývojáře jasně čitelná, naproti tomu v PHP je to jen sada funkcí.
- V Parseru existuje jednotné rozhraní pro práci s databázovými servery, včetně blob pole; v PHP je pro každý server zvláštní sada funkcí.
- V Parseru se objektová technologie aktivně používá v systémových typech – např. řetězec je tak objektem, se kterým mohou pracovat metody; v PHP prostě existuje sada funkcí pro práci s řetězci
- V Parser lze používat XML a XSL jednodušeji než v PHP.
- V Parseru je tabulka systémovým typem, v PHP není.
- V Parseru jsou vestavěné funkce tzv. „kešování“ (od angl. cache).
- V Parseru je všude implementováno automatické zpracování uživatelského vstupu – například během formování SQL dotazu se nahradí ‘ za “; ale v PHP jsou jenom zárodky tohoto přístupu.
Odkazy
- http://www.parser.ru/ - Oficiální web Parser
- http://www.parser.ru/ - Studie Artemia Lebedeva
- http://www.igromania.ru/Articles/3373/Parser_Yazyk_veb-programmirovaniya_ot_Studii_Artemiya_Lebedeva.htm - Článek rozvoji technologie Parser
- http://htmlparser.sourceforge.net/ - Externí web fórum vývojářů na technologii Parser