• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

czy da i jak łaczyc rózne jezyki programowania?

0 głosów
606 wizyt
pytanie zadane 24 maja 2024 w Inne języki przez niezalogowany
dajmy sytuacje ze chce połączyc np c++ i pythona np w z c++ idą dane a w pythonie są przetwarzane da sie tak? i jak?

1 odpowiedź

+1 głos
odpowiedź 24 maja 2024 przez Gynvael Coldwind Nałogowiec (30,510 p.)

Tak, da się, na kilka sposobów nawet.

  1. Wysokopoziomowo: tworzysz w jednym języku "serwer" przetwarzający dane i udostępniający API (po jakimś IPC, tj. inter-process communication, np. po potokach, socketach, albo czymś podobnym), oraz "klienta" do tego w innym język, który – jak czuje potrzebę przetworzenia danych – to korzysta z API tego serwera (tj. łączy się do tego serwera i wysyła mu odpowiednie dane). Możesz rzucić okiem np. na GRPC, albo po prostu JSON+HTTP.
  2. Niskopoziomowo: w C/C++ tworzysz sobie dynamiczną bibliotekę (DLL, .so), w której eksportujesz kilka funkcji, a w Pythonie ją ładujesz i sobie wywołujesz funkcje – do tego służy biblioteka ctypes w Pythonie.
  3. Korzystasz z czegoś typu SWIG, tj. biblioteki, która pozwala pisać funkcje w C++, a potem zajmuje się ich kompilacją i "wystawieniem interfejsu w Pythonie".
  4. Ew możesz sobie włączyć interpreter Pythona do swojego projektu w C/C++ – patrz np. https://docs.python.org/3/extending/embedding.html

Jest jeszcze kilka innych sposobów, ale tak na szybko te 4 pokrywają większość rozsądnych przypadków.

komentarz 24 maja 2024 przez niezalogowany
dziekuje
1
komentarz 24 maja 2024 przez adrian17 Mentor (355,160 p.)
Tylko zaznaczę że nie wspomniałeś prawdopodobnie najpopularniejszej obecnie opcji zastępującej jednocześnie sposoby 3 i 4:

https://github.com/pybind/pybind11
komentarz 24 maja 2024 przez niezalogowany
dzieki. tylko wspomne ze to był przykład i nie chodzi mi tylko o c++ i pythona:D
2
komentarz 24 maja 2024 przez adrian17 Mentor (355,160 p.)
Nie ma uniwersalnego rozwiązania (poza opcją 1, czyli dwa osobne programy gadające po jakimś protokole), do każdej kombinacji albo się nie da, albo są jakieś specjalizowane rozwiązania.
komentarz 25 maja 2024 przez niezalogowany
no szkoda

Podobne pytania

0 głosów
1 odpowiedź 420 wizyt
pytanie zadane 7 kwietnia 2020 w C i C++ przez Robot 12 Początkujący (340 p.)
0 głosów
1 odpowiedź 761 wizyt
pytanie zadane 22 czerwca 2021 w PHP przez imagim Obywatel (1,130 p.)

93,754 zapytań

142,714 odpowiedzi

323,359 komentarzy

63,348 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...