Artykuł „Semantyka operacyjna dla programów wielojęzycznych”
Jacoba Matthewsa i Roberta Bruce'a Findlera przedstawia dwa podejścia do definiowania semantyki programów napisanych w dwóch językach programowania, ze szczególnym uwzględnieniem danych zdefiniowanych w jednym języku i używanych w drugim. Guzek osadzanie pozwala wartości utworzonych w jednym języku pojawiać się w inny kod działa, ale to może być przekazywane tylko dookoła, nie operowano (lub może pracować na jedynie niewielką interfejsu). Naturalne osadzanie pozwala wartości w jednym języku, który będzie wykorzystywany w innych wykonując tzw obsady cross-językowy , który konwertuje wartości z jednego języka na drugi.
Artykuł JNI Light: model operacyjny dla podstawowego JNI autorstwa Ganga Tana przedstawia formalną semantykę działania istniejącego JNI. W przeciwieństwie do poprzedniego artykułu formalizuje to wiele szczegółów niskiego poziomu tego, co się dzieje, zamiast próbować zgłębiać problemy z fundamentalnej perspektywy.
Prace nad sprawdzaniem wywołań funkcji zagranicznych, takich jak Sprawdzanie bezpieczeństwa wywołań funkcji zagranicznych przez Michaela Furra i Jeffreya Fostera, zapewniają również formalne ramy do sformułowania systemu typów i udowodnienia jego poprawności.
Przejrzenie odniesień w tych artykułach i znalezienie miejsca, w którym są cytowane za pomocą Google Scholar, pomoże ci odkryć dokładniejszy obraz tego, co zostało zrobione w tym obszarze.
Chociaż wielu nie jest oczywiście bezpośrednio powiązanych, jedna rzecz, jaka przychodzi mi na myśl, to koncepcja „winy” autorstwa Wadlera i in. . To daje teoretyczną podstawę do przemyślenia na temat mieszania różnych reżimów pisania w spójną całość.
Zasadniczo obwinianie pozwala łączyć ze sobą języki ze słabszymi gwarancjami typu z językami, które mają silniejsze gwarancje typu bez utraty wszystkich zalet silnych gwarancji. Chodzi o to, że części systemu o słabszych gwarancjach dostaną „winę”, jeśli pewne rzeczy pójdą nie tak, lokalizując błędy typu runtime.
Mamy nadzieję, że zobaczysz, jak może to być przydatne dla FFI i powiązań mających zastosowanie do języków z różnymi systemami typów.
Edycja: Zobacz odpowiedź Sama TH, aby uzyskać pełniejszą intelektualną historię pojęcia „winy”.
źródło