🧠 Dlaczego nie używać typów zależnych?
Paulson oferuje fascynującą, historyczno-filozoficzną refleksję nad ewolucją weryfikacji formalnej. To rzadki wgląd w decyzje projektowe stojące za systemami takimi jak Isabelle i Lean oraz w praktyczne konsekwencje teoretycznych debat o typach w matematyce formalnej.
Lawrence Paulson dzieli się swoimi doświadczeniami z teoriami typów zależnych, takimi jak AUTOMATH i teoria typów Martina-Löfa, zestawiając je z podejściem logiki wyższego rzędu zastosowanym w systemie Isabelle. Wspomina o historycznych inspiracjach, motywacjach technicznych i rezultatach badań, które ukształtowały Isabelle, podkreślając, że logika wyższego rzędu wystarcza do formalizacji złożonej matematyki. Ostatecznie argumentuje, że typy zależne, choć eleganckie, wprowadzają niepotrzebną złożoność w porównaniu z prostszym fundamentem logicznym Isabelle.
🔗Czytaj Więcej🔗
📹 Szczury uchwycone na nagraniu, jak chwytają nietoperze w locie
🔗Czytaj Więcej🔗
🧩 Absurd Workflows: Trwałe procesy oparte wyłącznie na Postgresie
Artykuł to świetny przykład pragmatycznego inżynieringu — pokazuje, jak stworzyć niezawodne, łatwe do hostowania przepływy pracy bez rozbudowanej infrastruktury. Podkreśla też rosnącą rolę Postgresa jako uniwersalnej platformy dla odpornych, stanowych systemów backendowych.
Armin Ronacher przedstawia projekt „Absurd” — minimalistyczny system SQL, który realizuje trwałe wykonywanie procesów z wykorzystaniem jedynie bazy Postgres. Biblioteka pozwala utrwalać stan długotrwałych zadań i agentów AI, obsługiwać ponowienia i wznawiać działanie po awarii, bez potrzeby korzystania z zewnętrznych usług. System używa kolejek, punktów kontrolnych i zdarzeń, oferując funkcjonalność podobną do Temporal, lecz w prostszej, samowystarczalnej formie.
🔗Czytaj Więcej🔗
🌳 Drzewo składni abstrakcyjnej: przykład w języku C
Świetny tekst edukacyjny łączący teorię konstrukcji kompilatorów z praktyką programowania w C. Szczególnie wartościowy dla programistów systemowych, którzy chcą zrozumieć modelowanie struktur danych bez wsparcia nowoczesnych cech językowych.
Vladimir Keleshev wyjaśnia, jak zaprojektować i zaimplementować drzewo składni abstrakcyjnej (AST) w języku C. Omawia wykorzystanie unii znacznikowych, struktur i makr do reprezentacji wyrażeń arytmetycznych oraz generowania kodu asemblerowego x86-64. Artykuł pokazuje też techniki estetycznego wypisywania, dealokacji pamięci i zapewnienia bezpieczeństwa typów w ograniczonym środowisku C, a na koniec porównuje rozwiązanie z bezpieczniejszą, bardziej ekspresyjną wersją w OCaml.
🔗Czytaj Więcej🔗
💾 Zwięzłe wyjaśnienie, dlaczego emulator 6502 z dokładnym cyklem jest prostszy niż myślisz
🔗Czytaj Więcej🔗
