O usłudze
PrzetłumaczoneJestem programistą w metodach formalnych, piszącym programy w Idris, gdzie sam system typów niesie dowód, że kod spełnia swoją specyfikację. Zamiast liczyć na to, że testy wychwycą każdy przypadek brzegowy, koduję invariaty bezpośrednio w typach zależnych - a całe klasy błędów stają się niemożliwe: po prostu nie skompilują się. Moja praca znajduje się na styku programowania i matematyki: projektuję typy, które opisują kształt poprawnych danych, wyrażam pre- i postwarunki jako odpowiednie wartości i zamieniam sprawdzanie typów w nieustającego asystenta dowodowego. Jeśli masz krytyczny kawałek logiki - protokół, parser, maszyna stanów, obliczenia finansowe - który po prostu nie może być błędny, to jest gwarancja, którą dostarczam.
Moja metoda to rozwój napędzany typami w najszerszym sensie: zaczynam od precyzyjnej specyfikacji, szkicuję typy i rozwijam implementację przez "dziury", które kompilator pomaga mi wypełnić, udoskonalając kod, aż wszystkie zobowiązania dowodowe zostaną zamknięte. Piszę funkcje totalne z kontrolą totalności, zindeksowane struktury danych i dowody sprawdzone maszynowo dotyczące ich zachowania, a dokumentuję rozumowanie, aby twój zespół mógł je utrzymywać i ufać im. Poza samym Idris mam szerokie doświadczenie w programowaniu funkcyjnym i weryfikacji formalnej - co pozwala mi dobrać odpowiedni poziom rygoru do budżetu: pełne dowody tam, gdzie przynoszą korzyści, i lekkie gwarancje typowe gdzie indziej. Uwielbiam również prototypy badawcze: testowanie nowego pomysłu na poziomie typów, kodowanie obszaru problemowego w stylu dowodowym, przekształcanie wyniku akademickiego w działający kod.
Niezależnie od tego, czy potrzebujesz zweryfikowanego rdzenia w większym systemie, formalnego modelu skomplikowanego algorytmu, czy mentora, który wprowadzi typy zależne do twojej bazy kodu, pracuję starannie, wyjaśniam każdy krok i dostarczam kod, którego poprawność wynika bezpośrednio z typów.
— Implementacje Idris z typami zależnymi i zindeksowanymi
— Rozwój napędzany typami z formalnymi specyfikacjami
— Dowody sprawdzone maszynowo i kontrola totalności
— Zweryfikowane parsery, protokoły i maszyny stanów
— Formalne modelowanie algorytmów i logiki dziedziny
— Prototypy badawcze i eksperymenty na poziomie typów
— Przegląd kodu, mentoring i edukacja w zakresie typów zależnych
Moja metoda to rozwój napędzany typami w najszerszym sensie: zaczynam od precyzyjnej specyfikacji, szkicuję typy i rozwijam implementację przez "dziury", które kompilator pomaga mi wypełnić, udoskonalając kod, aż wszystkie zobowiązania dowodowe zostaną zamknięte. Piszę funkcje totalne z kontrolą totalności, zindeksowane struktury danych i dowody sprawdzone maszynowo dotyczące ich zachowania, a dokumentuję rozumowanie, aby twój zespół mógł je utrzymywać i ufać im. Poza samym Idris mam szerokie doświadczenie w programowaniu funkcyjnym i weryfikacji formalnej - co pozwala mi dobrać odpowiedni poziom rygoru do budżetu: pełne dowody tam, gdzie przynoszą korzyści, i lekkie gwarancje typowe gdzie indziej. Uwielbiam również prototypy badawcze: testowanie nowego pomysłu na poziomie typów, kodowanie obszaru problemowego w stylu dowodowym, przekształcanie wyniku akademickiego w działający kod.
Niezależnie od tego, czy potrzebujesz zweryfikowanego rdzenia w większym systemie, formalnego modelu skomplikowanego algorytmu, czy mentora, który wprowadzi typy zależne do twojej bazy kodu, pracuję starannie, wyjaśniam każdy krok i dostarczam kod, którego poprawność wynika bezpośrednio z typów.
— Implementacje Idris z typami zależnymi i zindeksowanymi
— Rozwój napędzany typami z formalnymi specyfikacjami
— Dowody sprawdzone maszynowo i kontrola totalności
— Zweryfikowane parsery, protokoły i maszyny stanów
— Formalne modelowanie algorytmów i logiki dziedziny
— Prototypy badawcze i eksperymenty na poziomie typów
— Przegląd kodu, mentoring i edukacja w zakresie typów zależnych