Kategoria: Programowanie

Jak korzystać z Lookup Table?

Pod wpływem doskonałej książki Code Complete autorstwa Steve’a McConella postanowiłem napisać o zastosowaniach tablic w C. Nie chodzi mi tu oczywiście o podstawy, składnię itp. Chociaż jak to w C, nawet tutaj znalazłoby się kilka niuansów. Mam zamiar zająć się bardziej zaawansowanymi tematami takimi jak lookup table, hash table, maszyny stanów, czy polimorfizm na tablicach wskaźników na funkcje. Wyszło tego sporo, dlatego podzieliłem tekst na kilka wpisów. Na pierwszy ogień idą Lookup Table.

Continue reading

Jak uzyskać obiektowość w C?

W języku C nie mamy czegoś takiego jak klasy. Jeżeli chcemy pisać programy w sposób obiektowy musimy wykorzystać w tym celu struktury i funkcje. Traktowanie modułów większego systemu jako obiektów zawierających pewne dane i umożliwiających operacje na nich jest sposobem na ukrycie szczegółów implementacyjnych. Abstrakcje pomagają zapanować nad złożonością projektów. Dlatego mimo, iż obiektowość w C musimy emulować, chętnie sięgamy choćby po niektóre elementy obiektowości. W tym wpisie pokażę jak poprawnie implementować obiektowość w C.

Continue reading

Generowanie plików runtime Ady – część 2

W poprzednim wpisie opisałem proces generowania runtime Ady dla STM32F401. Myślałem, że to już koniec przeprawy z konfiguracją, ale okazuje się, że nie. Pliki wygenerowane zgodnie z instrukcją z poprzedniego postu wymagają jeszcze małej modyfikacji. Poza tym jeżeli chcemy skorzystać również z Ada Drivers Library czeka nas kolejna runda walki ze skryptami. Udało mi się doprowadzić do stanu, gdzie program na STM32F401 się kompiluje, uruchamia na debugerze i poprawnie steruje peryferiami. Z tego postu dowiesz się jakie kroki musiałem wykonać, żeby do niego dojść.

Continue reading

Typy limited w Adzie

Mimo, że „Tydzień z Adą” już się skończył, temat tego języka będzie się jeszcze przez jakiś czas przewijał. Jako, że w internecie dosyć trudno znaleźć informacje nawet na temat wydawałoby się dosyć podstawowych konstrukcji języka, będę tutaj opisywał to, co udało mi się odkryć. Dzisiaj na tapecie atrybut limited, który dodany do typu uniemożliwia jego kopiowanie.

Continue reading

Ravenscar i ZFP – czyli profile runtime w Adzie

Dzisiaj zgłębię temat profili runtime’owych w Adzie. Pozwalają one określić z jakich funkcji języka możemy korzystać w projekcie. Dzięki temu mamy lepszą kontrolę nad zużyciem pamięci, wydajnością i bezpieczeństwem aplikacji. Rozwiązanie w Adzie jest dużo lepsze niż w innych językach, z którymi miałem do czynienia, ponieważ blokuje użycie niechcianych konstrukcji już na poziomie kompilacji.

Artykuł powstał w ramach “Tygodnia z Adą” podczas którego od poniedziałku do piątku będą ukazywać się materiały na temat języka Ada. Będzie między innymi dlaczego Ada tak dobrze nadaje się do safety-critical, pokażę swoje pierwsze próby z pisaniem programów w Adzie, a także postaram się uruchomić Adę na STM32.

Continue reading

Unit testy w Adzie

Ada została wymyślona jako język, w który swoją składnią utrudnia popełnianie błędów. Dlatego część przypadków sprawdzanych zwykle przez unit testy w Adzie w ogóle się nie skompiluje. Jednak mimo wszystko unit testy pozostają ważnym elementem sprawdzania poprawności działania systemu. Co więcej normy dotyczące systemów safety-critical często nakazują wykorzystanie unit testów i osiągnięcie odpowiedniego pokrycia kodu. Z tego artykułu dowiecie się jak wygląda wsparcie dla unit testów w Adzie.

Artykuł powstał w ramach “Tygodnia z Adą” podczas którego od poniedziałku do piątku będą ukazywać się materiały na temat języka Ada. Będzie między innymi dlaczego Ada tak dobrze nadaje się do safety-critical, pokażę swoje pierwsze próby z pisaniem programów w Adzie, a także postaram się uruchomić Adę na STM32.

Continue reading