- Research Area
- Introduction
- Type System
- version 2 roadmap
- MIMUW
- Using nianio pattern in JS
- Using nianio pattern in C
- Introduction to json-ptd technology
- json-ptd specification
- PHP json-ptd validator documentation
- JavaScript json-ptd validator documentation
- JavaScript json-ptd validator
Tematy na ZPP
Tematy są realizowane we współpracy z Atinea Sp. z o.o.
Dlaczego warto zainteresować się NianioLang?
- Projekt jest z zakresu języków programowania - jeśli chcielibyście zrobić własny język lub kompilator, to warto na początek pobawić się jakimś innym.
- Projekt jest dostępny na licencji MIT, więc można się swobodnie chwalić swoimi wynikami.
- NianioLang jest używany produkcyjnie do tworzenia platformy instadb.com , dzięki temu sensowne zmiany będą wdrożone i używane produkcyjnie.
- Projekt można rozszerzyć do pracy magisterskiej na seminarium z Języków Programowania.
- Za realizację sensownych zmian można otrzymać stypednium od Atinea Sp. z o.o. - 3000PLN brutto do podziału.
- Ewentualnie zainteresowane osoby mogą realizować projekt w biurze Atinea i w takim przypadku otrzymać stypendium w wysokości połowy stawki godzinowej (jako że realizowany projekt nie jest w pełni komercyjny).
Przykładowe projekty dla NianioLang
- Zrobienie platformy do nauki algorytmiki (małe - duże)
- Grupa docelowa to uczniowie klas 4-6 szkoły podstawowej
- Zrobienie IDE do realizacji zadań w stylu Olimpiady Informatycznej - tekstowe wejście wyjście
- Przygotowanie zbioru zdań - poziom trudności do dwóch zagnieżdżonych pętli i tablic jednowymiarowych
- Umożliwienie korzystania z platformy uczniom i nauczycielom w modelu samoobsługowym
- Potencjalnie - umożliwienie budowania własnych zbiorów zadań dla nauczycieli i dzielenia się nimi
- Temat realizowany we współpracy ze Szkołą Matematyki Logikus www.logikus.pl
- Zrobienie IDE na stronę (małe - duże)
- Potencjalnie z biblioteką do tworzenia gier do nauki informatyki (np. Cookie-Clicker lub innych)
- Nowy pretty-printer (małe)
- W ramach tego dopracowanie składni dla stringów
- Zrobienie narzędzia do badania zależności międzymodułowych i innych statycznych weryfikacji (małe)
- Wypisywanie kodu w postaci płaskiej listy do analizy
- Analizowanie zależności międzymodułowych
- Analiza użyć funkcji, szukanie martwych lub za bardzo używanych.
- Narzędzie do refaktoringu, uwzględniające:
- Zmiany nazw funkcji (małe)
- Zmiana kolejności parametrów (małe)
- Dociąganie parametrów (średnie). Polega to na tym, że w pewnej funkcji musimy mieć dostęp do pewnej wartości. Wartość ta jest dostępny wyżej na stosie odwołań. Przez to trzeba ją przeciągnąć do spodu. (średnie)
- Pakowanie parametrów. Mamy dwa parametry przekazane do funkcji, a zamiast tego chcemy przekazać rekord { a->x, b->y }. Następnie chcemy przejść przez wszystkie funkcje, które otrzymywały te dwa parametry i również popakować je w rekordy (duże).
- Rozwijanie funkcji. Ten temat pojawia się w przypadku refaktorowania, gdy funkcja wcześniej miała pewną logikę, a wraz ze zmianami stała się kadłubkiem (duże).
- Wyliczanie stałych w czasie kompilacji (małe / średnie)
- Lepsza kompilacja do JS wykorzystująca informację o “own” (duże)
- Kompilacja do C wykorzystująca informację o typach (duże)
- Inne pomysły. Chętnie pogadamy o Waszych pomysłach i powiemy Wam na ile byłyby przydatne dla Atinea.
Projekty małe da się po prostu napisać, a projekty duże trzeba przemyśleć i trzeba się trochę napisać :)
Kontakt
W przypadku zainteresowania zapraszam do kontaktu
Andrzej Gąsienica-Samek
ags@atinea.pl
Atinea Sp. z o.o.
ul. Kazimierzowska 22 lok. 1
02-572 Warszawa