Inlinec - nowy sposób wykorzystania kodu C w skryptach Pythona

projekt inlinec Zaproponowano nową metodę wbudowanej integracji kodu C ze skryptami Pythona. Funkcje C są zdefiniowane bezpośrednio w tym samym pliku kodu Pythona, co jest wyróżnione dekoratorem „@inlinec”. Skrypt podsumowujący jest wykonywany w niezmienionej postaci przez interpreter Pythona i analizowany przy użyciu mechanizmu udostępnionego w Pythonie kodeki, co umożliwia podłączenie parsera w celu przekształcenia skryptu przed jego analizą przez interpreter (z reguły moduł kodeków służy do transkodowania tekstu przezroczystego, ale pozwala także na dowolne przekształcanie zawartości skryptu).

Parser jest podłączony jako moduł („from inlinec import inlinec”), który wykonuje wstępne przetwarzanie i na bieżąco tłumaczy definicje funkcji C wyróżnionych adnotacjami @inlinec na wiązania ctypes i zastępuje treść funkcji C wywołanie tych powiązań. Po takiej transformacji interpreter Pythona otrzymuje poprawnie przekonwertowany tekst źródłowy skryptu, w którym za pomocą funkcji C wywoływane są funkcje ctypy. Podobną metodę zastosowano również w projekcie Pyxl4, który pozwala mieszać kod HTML i Python w jednym pliku.

# kodowanie: inlinec
z inlinec import inlinec

@inlinec
zdecydowanie test():
#zawierać
nieważny test() {
printf("Witaj, świecie");
}

Rozwój na razie prezentowany jest jako eksperymentalny prototyp, który zawiera takie mankamenty jak brak obsługi przekazywania wskaźników (poza ciągami znaków) do funkcji, konieczność uruchomienia
„gcc -E” do wstępnego przetwarzania kodu, zapisywania pośrednich plików *.so, *.o i *.c w bieżącym katalogu, bez buforowania przekonwertowanej wersji i wykonywania niepotrzebnych etapów analizowania (duże opóźnienia przy każdym uruchomieniu).

Źródło: opennet.ru

Dodaj komentarz