Programista 59: Język C

Odpowiedz Nowy wątek
2017-06-17 02:21
0

Makra w języku C – do czego są użyteczne i jakie triki można zastosować, aby pisać czystszy kod? W najnowszym numerze „Programisty” pisze na ten temat Mariusz Zaborski. Artykuł wyjaśnia między innymi podstawowe „pułapki”, na które możemy wpaść, używając makr, tworzenie template function bez faktycznego mechanizmu szablonów oraz debugowanie funkcji inline.

Drugim tematem godnym polecenia są podstawy języka C2. Język ten jest próbą stworzenia następcy poczciwego C poprzez zerwanie kompatybilności wstecznej i dodanie wielu atrybutów nowoczesności, takich jak moduły (importy) i bardziej intuicyjny system typów. Ciekawą właściwością C2 jest możliwość jego automatycznej transpilacji do pierwowzoru (czyli C). To wszystko w swoim opracowaniu opisał Marek Sawerwain.

Poza tym na łamach nowego wydania prezentujemy wywiad z Johnem Romero, jednym z twórców pionierskich gier firmy id Software takich jak Wolfenstein 3D, Doom czy Quake. Opowiada on o tym, jak wyglądało tworzenie gier w latach ‘90, a w szczególności – jak udało się stworzyć pierwsze silniki 3D w czasach, kiedy nikt nie wyobrażał sobie tego w kontekście komputerów PC.

Ponadto, jak zawsze, spektrum tematów alternatywnych:

  • Tworzenie rozszerzeń do Umbraco CMS na przykładzie pakietu Find and Replace,
  • Projekt Algochecker – skalowalna platforma na bazie Dockera do automatycznego testowania programów („sędzia internetowy”),
  • Logowanie w złożonych systemach czasu rzeczywistego na przykładzie Delphi Tracing System.

Naturalnie to nie wszystko, zachęcamy więc do osobistego zapoznania się z zawartością najnowszego wydania w salonach Empik oraz do bezpośredniej prenumeraty papierowej/elektronicznej.

59.jpg

  • 59.jpg (0,06 MB) - ściągnięć: 11

Pozostało 580 znaków

2017-06-17 10:49
0

Jeśli komuś się spodobała koncepcja C2 ale nie wykonanie to polecam Nim.

A dlaczego wykonanie miałoby się nie podobać? :) Poza tym, następca C z garbage collectorem? - Patryk Miszczak 2017-06-25 21:54
@Patryk, oczywiście. Z opcjonalnym GC. Nim kompiluje się do C, używa C, zastępuje C. https://github.com/nim-lang/Nim/wiki/Nim-for-C-programmers - vpiotr 2017-06-25 22:22
Osobiście wolę Rusta jako zastępstwo C w nowych projektach. Masz więcej gwarancji, że w jakiejś bibliotece GC cię nie ugryzie w rzyć. - hauleth 2017-07-02 14:12

Pozostało 580 znaków

2017-06-25 23:02
py123
0

Nie polecam. Kupiłem na szybko głównie z powodu artykułu o ML w pythonie. Sam tekst to dno, zawiera same banalne przykłady z pierwszych stron jakie można znaleźć w google. Na miejscu autora wstydziłbym się puszczać coś tak żałosnego do tego czasopisma. No, ale cóż teraz mamy modę na AI..

Pozostało 580 znaków

2017-06-30 21:02
Sweetiehead
0

"Jeśli komuś się spodobała koncepcja C2 ale nie wykonanie to polecam Nim."
A mógłbyś uzasadnić czemu wykonanie C2 miałoby się komuś nie spodobać? Albo chociaż podać główne różnicę C2 vs Nim?

Pozostało 580 znaków

2017-06-30 21:05
Sweetiehead
0

Poza tym czy go-lang i rust nie mały być także następcami C? Z tego co widzę następców C jest sporo, ale żaden tak naprawdę nie zastępuje C. Czy może się mylę?

Pozostało 580 znaków

2017-06-30 22:14
0
Sweetiehead napisał(a):

"Jeśli komuś się spodobała koncepcja C2 ale nie wykonanie to polecam Nim."
A mógłbyś uzasadnić czemu wykonanie C2 miałoby się komuś nie spodobać? Albo chociaż podać główne różnicę C2 vs Nim?

O ile dobrze rozumiem, to koncepcja która stoi za C2 to "lepsze C".
C2 wg tego co mają na stronie to rzeczywiście, ostrożne ulepszenie C, które powinno powstać w latach 80-tych.

Nim z drugiej strony to nowy język który ma tyle nowości, że spokojnie może zastąpić C, Pascala, Go i Rust (wiem że brzmię trochę jak fanboy).
Nim to C na miarę XXI wieku (czyli 40 lat później): https://nim-lang.org/docs/tut1.html i https://nim-by-example.github.io/getting_started/

Co mi się podoba w Nim?

  • obsługa łańcuchów (takich normalnych i tych z C)
  • niemutowalne zmienne (let)
  • kontrola efektów ubocznych
  • opcjonalny GC
  • parametry nazwane
  • własne operatory
  • iteratory
  • podzakresy
  • zbiory (sets)
  • tablice z rozmiarem
  • tablice otwarte (bez stałego rozmiaru)
  • wycinki (slices)
  • tuples
  • moduły
  • wyjątki
  • generyki
    itd...

Może obiektowość jest w tym języku słaba, ale dlatego nie wspominam o C++ ani o tym że to jest jakiś nowy najlepszy język do wszystkiego.
Jest po prostu lepszym C.

edytowany 1x, ostatnio: vpiotr, 2017-06-30 22:15
A jaką ma zaletę nad Rustem? Wyjątki? Osobiście uważam, że lepiej ich unikać. Własne operatory? Scala pokazała, że szybko ludzie zaczną takiej funkcjonalności unikać. Opcjonaly GC? D pokazało, że ta "opcjonalność" to słaby patent. Ja osobiście składni też nie jestem wielkim fanem, bo nigdy Pythonowa składnia mi nie podeszła. - hauleth 2017-07-02 14:15

Pozostało 580 znaków

2017-07-06 22:13
0

C2 ma wsparcie innych kolimatorów? Wygląda, że zbudowali go na clangu i llvm. Nawet składnia języka przypomina składnię IR llvm. Więc w zasadzie wystarczyło podmienić driver (sterowanie fazami kompilacji i linkowania) i frontend kompilatora (parsowienie, AST, codegen do formy pośredniej), a optymalizacje i codegen binarek zostawić standardowy.

edytowany 1x, ostatnio: nalik, 2017-07-06 22:17

Pozostało 580 znaków

2017-07-17 01:11
1
py123 napisał(a):

Nie polecam. Kupiłem na szybko głównie z powodu artykułu o ML w pythonie. Sam tekst to dno, zawiera same banalne przykłady z pierwszych stron jakie można znaleźć w google. Na miejscu autora wstydziłbym się puszczać coś tak żałosnego do tego czasopisma. No, ale cóż teraz mamy modę na AI..

Drogi czytelniku,

istnieje możliwość przejrzenia interesujących artykułów w salonach Empik przed kupieniem. Na łamach Programisty publikujemy artykuły o różnym poziomie zagłębienia w temat, niewykluczone że w przyszłości pojawi się bardziej zaawansowany artykuł na temat machine learningu. Stanie się to tak szybko, jak szybko uda nam się znaleźć autora, który wyrazi ochotę na napisanie bardziej złożonego artykułu :) (nie mówię tutaj ironicznie, niekiedy w odpowiedzi na słabe artykuły pojawiają się osoby z tytułem doktora i wyżej z danej dziedziny i publikują lepsze treści).

Pozdrawiamy,
Redakcja Programisty


edytowany 2x, ostatnio: Magazyn Programista, 2017-07-17 01:12

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0