-
Data: 2018-05-05 21:45:05
Temat: Re: Formal Methods Toolkit
Od: Maciej Sobczak <s...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]> Czy to jest po prostu nowy język programowania
Sprawa jest bardziej złożona. Nie jest to zupełnie nowy język, bo wykorzystuje
gramatykę języka Wolfram. Tzn. każda konstrukcja w FMT jest poprawnym wyrażeniem
języka Wolfram, choć z nowym znaczeniem wynikającym z tego, jak dane wyrażenie jest
dalej obrabiane. Nie jest to też po prostu język programowania, bo nacisk jest na
modelowanie systemu na poziomie wymagań niskopoziomowych. W swoim rdzeniu taki model
faktycznie wygląda jak imperatywny kod albo pseudokod, ale nie jest to ograniczenie i
być może język zostanie rozwinięty w stronę bardziej wysokopoziomowych konstrukcji,
niekoniecznie opartych na kodzie w sensie tekstowego formatu. Ostatecznie kod
programu jest generowany na podstawie modelu.
> pozwalający na jakąś formę dowodzenia poprawności?
Tak, ideą jest statyczne dowodzenie różnych wybranych cech modelu.
> Jak on się ma do - coraz popularniejszych, choć wciąż niszowych - języków typu Coq,
Agda, Idris opartych o dependent types?
1. Podstawowym założeniem w FMT jest zdolność do wygenerowania kodu, który w ogóle
nie potrzebuje run-time'u, co ma ułatwić wdrożenie w *prawdziwych* systemach
krytycznych, czyli takich, które podlegają narzuconym z góry przemysłowym standardom.
Czyli żadnej pamięci dynamicznej (nawet niejawnej), itp. Celem jest też generacja
kodu w Adzie lub w C(++), które są standardowymi językami wykorzystywanymi w
przemyśle - po to, żeby można było taki wygenerowany kod użyć w jakimś regularnym i
uznanym obecnie procesie produkcyjnym. Inaczej mówiąc, można użyć FMT w obecnym
procesie, bez technicznych rewolucji, bo z punktu widzenia obecnych procesów jest to
tzw. Model-Based Design z generatorem kodu, czyli coś, co z powodzeniem uprawia się
od dawna (patrz np. Simulink, SCADE, itp.).
O ile zgaduję, takie założenia nie były priorytetem w tych językach, które
wymieniłeś.
2. Co to jest "dependent types"?
W FMT system typów to ścisły podzbiór tego, co można osiągnąć w C albo w Adzie. Ma to
związek z założeniami powyżej.
--
Maciej Sobczak * http://www.inspirel.com
Najnowsze wątki z tej grupy
- C++. Podróż Po Języku - komentarz
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
- Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
Najnowsze wątki
- 2025-04-10 Samsung A12 - po co 4 obiektywy ?
- 2025-04-10 Pendrive - czy to rzeczywiście Sony ?
- 2025-04-10 Warszawa => Junior Digital Project Manager <=
- 2025-04-10 Warszawa => Junior Digital Project Manager <=
- 2025-04-09 [przegląd prasy] - raport mniejszosci
- 2025-04-09 [przegląd prasy] - wypadek autobusu w Warszwie - wyrok (prawomocny)
- 2025-04-09 [przegląd prasy] - przejścia na drogach rowerowych
- 2025-04-09 Czy blokowanie sali obrad Sejmu przez PO-opozycje pod rządami PiS już się przedawniło? [mecenas Giertych dołki kopie?]
- 2025-04-09 Koniec produkcji Leapmotor T03
- 2025-04-09 Pruszków => Specjalista ds. public relations <=
- 2025-04-09 Rzeszów => International Freight Forwarder <=
- 2025-04-09 Ryga => Konsultant Wdrożeniowy Comarch XL/Optima (Księgowość i Kad
- 2025-04-09 Poznań => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-04-09 Chrzanów => Spedytor Międzynarodowy (handel ładunkami/prowadzenie f
- 2025-04-09 Warszawa => JavaScript / Node / Fullstack Developer <=