Szybki język skryptów do osadzenia w cpp

0

Witajcie,

Potrzebuje mieć osadzone skrypty w programie. Potrzebny szybki język.Najlepiej kompilowany przed uruchomieniem do bajtkodu jak Java, ale Javy nie bo potrzeba jre. Myślałem o lua, ale składnia tego języka to porażka. Myślałem o PAWN, ale nie ma o nim za dużo w necie. Znalazlem tez Pike, ale też szerzej nie znany. Może dałoby się osadzić język jak Python czy Ruby, tylko w postaci bajtkodu na jakiejś wirtualnej maszynie w C++ (znaczy że nie mojej, tylko coś istniejącego).

3

Potrzebny szybki język
Co to znaczy szybki język?
Czy szybszy jest język szwedzki czy niderlandzki? Jaki jest wyznacznik oraz dlaczego?

Najlepiej limitowany przed uruchomieniem do bycie jak java
Sugeruję zacząć pisać posty wykorzystując nie tylko polskie słowa, ale także i gramatykę - będziemy wtedy w stanie zrozumieć, co chodzi Ci po głowie.

Myślałem o lua, ale ta skłania
Skłania do czego?

Myślałem o pawn, ale nie ma o nim za dużo w necie.
A czego byś więcej chciał?

Może dało by się osadzić język jak python czy ruby, tylko w postaci bytecode na jakiejś vm w c++

  1. Dałoby
  2. Python
  3. Ruby
  4. bajtkodu (a nie "bytecode")
  5. wirtualnej maszynie (a nie "vm" - nie kalecz języka aż tak)
  6. Powiedz mi proszę, jakie hasła wpisywałeś w Google, że nie trafiłeś na ten oto piękny link prowadzący do oficjalnej dokumentacji Pythona, gdzie opisana jest właśnie tematyka, o którą pytasz?
1
  1. Język do skryptów nie ma być szybki - szybki ma być twoje udostępnione API
  2. Jeżeli potrzebujesz "blazing fast" cośtam cośtam, to może nie skrypty, lecz pluginy w postaci DLL/DL?
  3. v8 javascript (porównanie z pythonem: https://benchmarksgame.alioth.debian.org/u32/compare.php?lang=v8&lang2=python3)

https://developers.google.com/v8/embed
http://jasonroelofs.github.io/rice/ | https://gist.github.com/jefftrull/1305431
https://docs.python.org/2/extending/embedding.html
https://csl.name/post/lua-and-cpp/

3

Szybszego języka skryptowego niż LuaJIT nie znajdziesz. AFAIK nawet V8 nie przebija tej implementacji, a jeśli składnia Rubiego Ci nie przeszkadza, to Lua też powinno być do przełknięcia.

1
bajos napisał(a):

Myślałem o lua, ale składnia tego języka to porażka.

Lua to dojrzały projekt, z dobrą dokumentacją C API, z implementacją ogólnie znaną ze swojej wydajności przez co nierzadko wykorzystywany przez profesjonalnych twórców gier/silników http://stackoverflow.com/questions/5053134/what-is-a-good-game-engine-that-uses-lua (Cryengine, Irrlicht etc) Ale nie, bo składnia Ci się nie podoba...eh, wg mnie nie gorsza od JavaScriptu. Takim prawdziwym zarzutem do Lua może być to, że jest bardzo ubogi w ficzery, przynajmniej był kilka lat temu jak w nim pisałem. Wspomniany przez @winerfresh LuaJIT wygląda interesująco.

2

Jak dla mnie LUA jest bardzo nieprzyjemnym językiem do pracy. Pomijając już kłopoty z bindowaniem do C++ (luabind był najlepszy, ale czasy kompilacji i szablonowe komunikaty błędów eksplodują)

Osobiście korzystam z javascriptu dzięki Qt i jego moc, który automagicznie generuje wszystkie metainformacje o typach.

0

Można jeszcze spróbować z Tiny C, ale to stary kompilator.

Jest słabszy od obecnych kompilatorów C, ale kompiluje z/do pamięci. Nie wiem czy wystawia w ogóle jakieś wsparcier dla budowy API.
http://bellard.org/tcc/

Porównanie wydajności języków skryptowych (m.in.)
http://attractivechaos.github.io/plb/

Sam stosowałem JScript i VBScript w swoim programie - do wsparcia pluginów (ale to było Delphi).
Zaleta - engine w Windows jest wbudowany: https://en.wikipedia.org/wiki/Windows_Script_Host

0

Ogólnie jeśli wydajność jest sprawą 2 rzędu (np. większość pracy będzie i tak wykonywana w C/C++/Ruscie) oraz licencja GPL nie jest problemem to polecam Guile. Jeśli GPL jest problemem to mimo wszystko polecam rozejrzeć się za innymi (z bardziej swobodnymi licencjami) implementacjami Scheme.

0

Znalazłem jeszcze implementacje Pythona nazwaną PyPy i ma ona kompilator JIT Pythona i jest dość szybka. Da się łatwo (może to tylko początkowe odczucie) wbudować go w program C++. Więc do wyboru teraz mam V8, Lua, PyPy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1