Zapraszamy do zamówienia magazynu w >>prenumeracie<<. Miesięcznik jest dostępny w formie papierowej, PDF, EPUB i MOBI oraz AZW3. Do prenumeraty papierowej zawsze dołączamy wydania elektroniczne.
Magazyn poza prenumeratą dostępny jest w salonach Empik do 20 września 2018 r.
JĘZYKI PROGRAMOWANIA
Q# – czas na kwantowe języki programowania (>>więcej o tym artykule<<)
W jakim kierunku rozwijać się będą języki programowania? Pytanie wbrew pozorom jest dość trudne i możemy wskazać raczej tylko tendencje, jak np. wzrastającą popularność języków funkcyjnych lub dalsze zwiększanie roli języków skryptowych czy interpretowanych. Jednakże powinniśmy też wziąć pod uwagę fakt, iż od dłuższego czasu rozwijają się nowe podejścia do obliczeń, a takim nowym modelem obliczeniowym, jaki warto wymienić, jest model obliczeń kwantowych.
Marek Sawerwain
Rzut okiem na język D (>>więcej o tym artykule<<)
Pierwszy i dotychczas jedyny artykuł o języku D pojawił się w „Programiście” w wydaniu 6/2012, czyli niemal sześć lat temu. Od tego czasu trochę się pozmieniało: referencyjny kompilator dmd doczekał się ponad dwudziestu nowych wersji, a jego frontend został przepisany z C++ do D. Ponadto pojawiła się coroczna konferencja DConf (ostatnia edycja odbyła się w maju 2018 w Monachium), a pieczę nad samym językiem przejęła fundacja non-profit: The D Language Foundation. Celem poniższego artykułu jest przedstawienie wybranych funkcjonalności oferowanych przez ten język.
Paweł "KrzaQ" Zakrzewski
PROGRAMOWANIE SYSTEMOWE
Co dzieje się pod maską? Zaglądamy do disassembly programów w C++ (>>więcej o tym artykule<<)
Wiele współczesnych języków programowania to języki bardzo wysokopoziomowe. Operujemy w nich na takich pojęciach, jak klasa, dziedziczenie, metody wirtualne czy LINQ. Tymczasem procesor komputera nie ma pojęcia o żadnej z tych konstrukcji, będąc na dobrą sprawę takim bardziej zaawansowanym kalkulatorem. Czy zastanawialiście się kiedyś, w jaki sposób taki wysokopoziomowy kod jest wykonywany później przez procesor?
Wojciech Sura
PROGRAMOWANIE SYSTEMÓW OSADZONYCH
Małe jest piękne – ARM Cortex-M0
ARM Cortex-M0 jest najmniejszym mikrokontrolerem z rodziny ARM. Jego główne obszary zastosowania to drobna elektronika użytkowa oraz czujniki dla internetu rzeczy. Postaram się przedstawić trzy przykładowe programy, które powinny pomóc rozpocząć zabawą z tym sprzętem. Aby poznać go bliżej, programy przygotowano w języku asembler. Z tego powodu tekst może okazać się także interesujący dla osób, które chciałyby przyjrzeć się trochę dokładniej, jak działają współczesne mikrokontrolery.
Rafał Kozik
PROGRAMOWANIE GRAFIKI
Zrównoleglanie obliczeń w przetwarzaniu obrazów
Przetwarzanie obrazów jest jedną z najbardziej interesujących gałęzi informatyki. W ogólnym rozrachunku jest to dziedzina przetwarzania sygnałów. Zauważmy bowiem, że obraz jest dyskretnym sygnałem dwuwymiarowym. Operacje, które jesteśmy w stanie zrealizować na nim, mają na celu na przykład poprawienie jego jakości czy też uwypuklenie pewnych detali. Nierzadko jednak czas, który jest niezbędny do zrealizowania takich algorytmów, jest bardzo długi. Rozwiązaniem tego problemu może być zrównoleglenie obliczeń w przetwarzaniu obrazów.
Maciej Szymkowski
INŻYNIERIA OPROGRAMOWANIA
Kwantowy algorytm wyszukiwania
Przykład wykorzystania metody brute force
Algorytm wyszukiwania elementów spełniających pewien warunek, spośród danej ilości elementów, przy użyciu komputera kwantowego znajduje rozwiązanie z dużo mniejszą ilością kroków niż komputer klasyczny.
Andrzej Klejnberg
STREFA CTF
Google CTF 2018 (Quals) – Sandbox Compat
W trakcie tego lata odbyły się kwalifikacje do CTFa przygotowanego przez korporację Google. Chcielibyśmy przedstawić naszym czytelnikom rozwiązanie jednego z najtrudniejszych zadań z kategorii pwn o nazwie Sandbox Compat.
Ariel "ariel" Wasteskeen
Midnight Sun CTF 2018 – Badchair
16 czerwca tego roku odbyła się pierwsza edycja konkursu Midnight Sun CTF, w którym uczestniczyliśmy razem z kilkoma innymi członkami p4. Został on zorganizowany wspólnie przez KTH (Królewski Instytut Technologiczny w Sztokholmie), szwedzki zespół HackingForSoju oraz firmę SaaB. Termin oraz nazwa CTFa nie jest przypadkowa. Midnight Sun to zjawisko naturalne, które można zaobserwować w letnich miesiącach w krajach leżących blisko koła podbiegunowego. Jak można się domyślić, polega ono na tym, że o północy słońce zamiast być za horyzontem znajduje się ciągle na niebie. I faktycznie, dokładnie to stało się podczas trwania CTFa – w teorii. W praktyce rzeczywiście noc była bardzo krótka, a północ jasna, co znacznie ułatwiło nam wytrwanie całej nocy pełnej łamania zadań.
Jarosław Jedynak
KLUB DOBREJ KSIĄŻKI
Nowoczesna kryptografia. Praktyczne wprowadzenie do szyfrowania
Mariusz „maryush” Witkowski