PolakPotrafi.pl - aktualności z projektu Język do łatwego tworzenia systemów operacyjnych https://polakpotrafi.pl/ Aktualności z projektu Język do łatwego tworzenia systemów operacyjnych w serwisie PolakPotrafi.pl pl Fri, 29 Nov 2013 16:02:45 +0100 http://img.polakpotrafi.pl/rss.png 14440 https://polakpotrafi.pl/projekt/ganima-jezyk-programowania-systemow-operacyjnych/ PolakPotrafi.pl - aktualności z projektu Język do łatwego tworzenia systemów operacyjnych Kilka konretów Fri, 29 Nov 2013 16:02:45 +0100 https://polakpotrafi.pl/projekt/ganima-jezyk-programowania-systemow-operacyjnych/aktualnosc/1085 https://polakpotrafi.pl/projekt/ganima-jezyk-programowania-systemow-operacyjnych/aktualnosc/1085 Wykopowicze narzekają, że brak konkretów. Odpowiadam:<br /> <br /> 1. Brak konkretów z tego względu, że 6-miesięczny etap ma na celu głównie zaprojektowanie języka i szybkie stworzenie prototypu przy użyciu bisona, fleksa i llvm. Dopiero potem można szukać wsparcia w open source community.<br /> Co do kwoty. Jasne, świeżo zatrudniony programista zarabia więcej, ale przecież nie w tym rzecz. W ilu firmach w Polsce istnieje dział R&D gotowy zapłacić za research w tym kierunku? <br /> <br /> 2. Kilka konkretów.<br /> Silne typy (równość typów jak w Adzie, czyli wg nazwy, nie struktury), bloki w klamrach jak w C, składnia raczej niezbyt verbose.<br /> Duży nacisk na modularność.<br /> Obiektowość z dziedziczeniem (jedna klasa bazowa, mnogość interfejsów), polimorfizm.<br /> Wsparcie składni dla wzorców: iteratora, visitora, observera, itp.<br /> Świadomość działania w kernel space, tj. wsparcie dla takich rzeczy jak przerwania.<br /> SMP, wsparcie języka dla wątków jądra i jak najbardziej przezroczystej synchronizacji.<br /> Aby parę rzeczy zrealizować, język będzie udostępniał łatwy interfejs do własnoręcznego pisania runtime'u, tj. np. alokacja będzie konstrukcją języka, do której łatwo będzie się podpinało konkretną implementację. Podobnie scheduling wątków, etc.<br /> <br /> No i duża biblioteka powtarzających się komponentów, czyli algorytmy alokacji, schedulery, modele procesów, przestrzeni adresowej, itd.