CategoryProgramowanie

Tablice wskaźników na funkcje

To już ostatni wpis z serii dotyczącej zastosowań tablic w C. Dzisiejszym tematem będą tablice wskaźników na funkcje. Pozwalają one w jednolity sposób obsługiwać różne zachowania programu, czyli są rodzajem polimorfizmu. Czasem bywają niezwykle przydatne.

Continue reading

Maszyny stanów na tablicach

Po lookup table i wyszukiwaniu elementów pora na kolejne zastosowanie tablic – maszyny stanu. Podobnie jak w poprzednich przypadkach, logikę warunkową zastąpimy wyczytywaniem odpowiednich indeksów z tablicy. W przypadku maszyn stanu możemy dzięki temu nie tylko zwiększyć wydajność, ale również drastycznie poprawić utrzymywalność kodu.

Continue reading

Tablice przyspieszające wyszukiwanie elementów

Kolejnym – po Lookup Table – tematem związanym z tablicami, którym się zajmę jest przyspieszenie wyszukiwania elementów. Zwykle nasze możliwości w tym zakresie ograniczają się do podawania indeksu tablicy albo wyszukiwania w pętli. Możemy jednak przyspieszyć te operacje wykorzystując dodatkowe tablice z mapowaniem indeksów, albo skorzystać z hash table.

Continue reading

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

Generowanie plików runtime Ady dla mikrokontrolerów

Po zainstalowaniu toolchaina GNAT dla ARMów otrzymujemy wsparcie jedynie dla niewielkiej liczby procesorów. Aby wygenerować pliki runtime dla innych, musimy skorzystać ze skryptów dostępnych w repozytorium bb-runtimes od AdaCore. Ostatnio potrzebowałem wygenerować je dla nowego procka i trochę musiałem się namęczyć. Dlatego teraz opiszę do czego udało mi się 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

© 2019 ucgosu.pl

Theme by Anders NorénUp ↑