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

Na jakiej zasadzie działają aplikacje pisane w kilku językach.

Object Storage Arubacloud
+1 głos
538 wizyt
pytanie zadane 30 lipca 2021 w Systemy operacyjne, programy przez tonn204 Mądrala (7,440 p.)
Witam, często przeglądając internet czytam, że jakiś program został napisany w kilku językach programowania. Ciekawi mnie na jakiej zasadzie to działa i jak te języki się komunikują jężeli miałbym np. GUI napisane w Javie, a wszystkie właściwe funkcjie w C++. Czy są do tego jakieś specjalne bibloteki albo API?

2 odpowiedzi

+4 głosów
odpowiedź 30 lipca 2021 przez Oscar Nałogowiec (29,320 p.)
Akurat w Javie jest JNI (Java Native Interface ? ) umożliwiający dołączanie kodu napisanego w C(++) do Javy. W wielu językach bardziej skryptowych jest podobnie. Oczywiście zawsze jest możliwość, że aplikacja składa się z kilku fizycznie odrębnych programów, które się jakoś tam komunikują (od systemowych metod - potoki, pamięć dzielona itp, poprzez połączenia sieciowe aż po połączenie do jednej bazy). Takie odrębne programy mogą być oczywiście napisane w różnych językach w sposób naturalny.
komentarz 30 lipca 2021 przez j23 Mędrzec (194,920 p.)
Dodać też należy, że są języki, które należą do tej samej platformy uruchomieniowej jak np. JVM czy .Net. I takich języków możesz użyć w ramach jednego projektu.
komentarz 30 lipca 2021 przez Wiciorny Ekspert (270,170 p.)

@Oscar, warto mieć na uwadzę, że jeśli są języki z rodziny obslugi JVM to teoretycznie część roboty jest robiona  po przejściu procesu kompilacji, potem pliki wynikowe i utworzone mozna spokojnie odpolać.na różnych maszynach lub odpowiednio spakietyzowane jako gotowe komponenty.

 

0 głosów
odpowiedź 30 lipca 2021 przez Marcinnok Użytkownik (780 p.)
To zależy. Jeżeli chodzi o Javę to jest JNI (jak podano w innej odpowiedzi). To ci pozwala na połączenie z językami C i C++. A to daje już wiele możliwości (osadzenie interpreterów innych języków). W przypadku Javy, możesz jeszcze napisać programy w językach opartych na JVM - Scala, Kotlin i połączyć z Javą, ponieważ kompilują się do Java Bytecodu. Tak samo w przypadku .NET - tam jest język CIL, a później bytecode .NETowy. W przypadku Asemblera, w niektórych językach jest funkcja asm(). Pozwala ona na dodanie instrukcji asemblera. Przypomina to inline CSS. Implementowanie HTML i zarazem JavaScriptu to skutek użycia CEF (Chromium Embedded Framework).
W przypadku języków, które kompilują się do kodu maszynowego, jest ich warstwa pośrednia (pliki obiektowe .o). Nigdy o tym nie czytałem, ale być może jest opcja, że łączenie np. C++ i Go to skutek łączenia tych plików.
Oczywiście są inne metody: komunikowanie się. Możesz postawić lokalny serwer API i wtedy jest jednostronna komunikacja. Możesz też za pomocą zwykłych plików tekstowych.

-------------------------------------------------------------------
Jeżeli umiesz podstawy c++, spróbuj napisać dwa osobne programy (oba w c++). Jeden z nich podmienia zawartość pliku test.txt z użyciem getline (zapętlone w nieskończonej pętli). Drugi ma jedną zmienną, pusty string(będzie w niej zawarta treść pliku, na początku zmienna jest pusta). Program odczytuje ten plik w nieskończoność. Jeśli coś się w pliku zamienia (porównanie z zmienną), to wypisuje treść pliku na ekran, oraz zmienna przechowująca aktualną zawartość pliku, jest zamieniana. Ot, taki eksperyment.

-------------------------------------------------------------------
Ostatecznie, program może wywoływać innego execa z użyciem jego CLI.

Podobne pytania

0 głosów
4 odpowiedzi 3,798 wizyt
+2 głosów
2 odpowiedzi 968 wizyt
0 głosów
3 odpowiedzi 430 wizyt
pytanie zadane 4 października 2015 w Rozwój zawodowy, nauka, praca przez falauthy Stary wyjadacz (11,550 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...