XS (Perl) - XS (Perl)
XS je Perl rozhraní cizí funkce prostřednictvím kterého může program volat a C nebo C ++ podprogram. XS nebo xsub je zkratka "eXternal Subroutine", kde externí odkazuje na programovací jazyky mimo Perl.
XS také označuje a lepidlo jazyk pro specifikaci volacích rozhraní podporujících tato rozhraní (viz níže).
Pozadí
Jsou volány podprogramové knihovny v Perlu modulya jsou volány moduly, které obsahují xsubs XS moduly. Perl poskytuje rámec pro vývoj, balení, distribuci a instalaci modulů.
Může být žádoucí, aby program Perl vyvolal podprogram C, aby zvládl velmi dobře procesor nebo Paměť intenzivní úkoly, rozhraní s Hardware nebo nízkoúrovňová systémová zařízení, nebo využít existující knihovny podprogramů C.
Tlumočník Perl
The Tlumočník Perl je program C, takže v zásadě neexistuje překážka volání z Perlu do C. Rozhraní XS je však složité[proč? ] a vysoce technické a jeho použití vyžaduje určité znalosti tlumočníka. Nejstarší zmínka o tématu byla perlguts LUSK.
Obaly
Je možné psát XS moduly, které zabalit C ++ kód. To je většinou otázkou konfigurace modulu stavět Systém.[1]
Vytvoření modulu XS
Chcete-li vytvořit modul XS, h2xs[je třeba další vysvětlení ] je poprvé použito[proč? ] k vytvoření prázdného modulu. Dále jsou přidány podprogramy C a volací rozhraní k podprogramům C jsou specifikována specializovaným jazykem lepidla. Nakonec modul je sestaven, otestováno a nainstalováno s udělat.
Jakmile je modul XS nainstalován, lze jej načíst do programu Perl pomocí a použití prohlášení, jako obyčejný Modul Perl. Jakmile je modul načten, lze podprogramy C volat z kódu Perlu, jako by byly napsány v Perlu.
Potíže
Moduly XS jsou obtížné[proč? ] psát a udržovat a mohou být instalovány, pouze pokud a Překladač C. a hlavičkové soubory jsou k dispozici překladače Perl. Také se mohou zlomit nové verze Perlu binární kompatibilita vyžadující překompilování XS modulů.
Viz také
- LOK, alternativa k XS, která také podporuje volání funkcí C a C ++ z několika dalších jazyků.
Reference
- ^ „Lepení C ++ a Perlu dohromady“. johnkeiser.com. 27. srpna 2001.
- Jenness, Tim & Desítky, Simone (2002). "Rozšíření a vložení Perlu". Greenwich: Manning Publications Co. ISBN 1-930110-82-0
externí odkazy
- perlxs Perl XS aplikační programovací rozhraní
- perlxstut Výukový program Perl XS
- perlguts Perl interní funkce pro ty, kteří dělají rozšíření
- perlapi Výpis Perl API (automaticky generovaný)
- Mechanika XS tutorial
- Perl a C ++ vytváření modulů XS pro C ++
- xs-zábava XS je zábava: jednoduchý a snadný výukový program pro psaní Perl XS