Można w nim tworzyć systemy operacyjne, sterowniki, gry w stylu funkcyjnym o składni podobnej do pythona, haskella i scali? Czy to język bardziej do nowoczesnego backendu?
Można w nim tworzyć systemy operacyjne, sterowniki, gry w stylu funkcyjnym o składni podobnej do pythona, haskella i scali? Czy to język bardziej do nowoczesnego backendu?
Ale nie skasujesz konta?
Tak naprawdę, możliwości języka są definiowane poprzez możliwości narzędzi i programów z nim związanych.
Prosty przykład: Język C++ był przez całe lata uważany za język służący do tworzenia programów i gier kompilowanych do kodu maszynowego. Ale od czasu, jak wymyślono kompilatory C++ do WASM, okazuje się, że ten sam C++ ma nowe zastosowanie, jakim jest aplikacja pracująca w przeglądarce i uruchamiana na każdym urządzeniu i systemie mającym przeglądarkę z WASM.
Inny przykład to JavaScript: Przez lwią część czasu to był język używany tylko i wyłącznie w przeglądarce do oprogramowywania HTML. Ale od czasu, jak został napisany "node.js", ten sam język JavaScript zyskał nowe zastosowanie.
Wygląda jak taki ludzki haskell. Z fajnych ciekawostek to zmergowany kod i zależności brzmi całkiem ciekawie.
Tak wygląda trochę jak taki mniejszy i prostszy haskell, ale pytanie było gdzie go zastosować i czy można będzie w nim pisać na metalu.
Wydaje mi się że on ma mieć podobne zastosowanie do języka Toit w którym możesz pisać systemy, sterowniki na risc-v.
Hyl0 napisał(a):
Tak wygląda trochę jak taki mniejszy i prostszy haskell, ale pytanie było gdzie go zastosować i czy można będzie w nim pisać na metalu.
Jak natywny kod generuje to zawsze pójdzie, no chyba że są jakieś ograniczenia jak garbage collector wyłącznie i nie można swobodnie modyfikować pamięci, a tylko tą która została przydzielona przez gc.
Najlepiej jak są dostępne wstawki asm, to zawsze można jakieś in/out operacje dopisać, a większość pójdzie zrobić przez swobodną możliwość modyfikowania pamięci, które to adresy wyczyta się z datascheet procesora, pod jakimi adresami są podmapowane rejestry np. od sprzętowej implementacji protokołów komunikacji.
Większość języków nie pozwala wpisywać losowych bajtów w sekcji .code, tylko przy użyciu składni języka, wstawek i różnych trików jak modyfikacja pamięci, wykonywanie kodu na stosie, na heapie.
Jedyny sposób, żeby w tej sekcji zaalokować dane w wysokopoziomowym języku to używając tych wstawek asm, tak to nigdy nie powinno być robione :>
No i rzygać mi się chce od tych języków, lepiej się skupić na zadaniu, projekcie niż na tym w czym to będzie pisane.
Jak można się tak fascynować językami programowania, to już twój 64 post o nim,val,zig,haskell i innych.