Hacker News with Generative AI: Computer Science

Solving the first 100 Project Euler problems using 100 languages (github.com/jaredkrinke)
This repository tracked a misguided quest to write code in 100 different programming languages, specifically by solving the first 100 Project Euler problems, using a different--and, ideally, new to me--language for each problem.
Uncovering Real GPU NoC Characteristics: Implications on Interconnect Arch. (ece.ubc.ca)
Programming in Lua (first edition) (2003) (lua.org)
This is the online version of the first edition of the book Programming in Lua, a detailed and authoritative introduction to all aspects of Lua programming written by Lua's chief architect.
(Right-Nulled) Generalised LR Parsing (jeffsmits.net)
I hope you know a bit about LR parsing, otherwise this blog post won’t make much sense to you. You can read all about it in a previous post of mine. Today I want to discuss the problems with getting your language parsed in LR(1), or even LR(k). And how an old way to solve those problems is with a more powerful algorithm, that can parse any context-free grammar, no restrictions, no complaints about conflicts.
Lambda Calculus in 383 Bytes (2022) (justine.lol)
(Right-Nulled) Generalised LR Parsing (jeffsmits.net)
I hope you know a bit about LR parsing, otherwise this blog post won’t make much sense to you. You can read all about it in a previous post of mine. Today I want to discuss the problems with getting your language parsed in LR(1), or even LR(k). And how an old way to solve those problems is with a more powerful algorithm, that can parse any context-free grammar, no restrictions, no complaints about conflicts.
Young Persons Guide to BCPL Programming on the Raspberry Pi [pdf] (cam.ac.uk)
Treewidth? (ams.org)
The treewidth of a graph, a positive integer defined using a tree of sets of vertices, is central to graph structure theory and the parametrized complexity of algorithms.
Nearly all binary searches and mergesorts are broken (2006) (research.google)
I remember vividly Jon Bentley's first Algorithms lecture at CMU, where he asked all of us incoming Ph.D. students to write a binary search, and then dissected one of our implementations in front of the class.
Reversible computing escapes the lab (ieee.org)
This weird information-theory concept has become a power-saving chip
Flattening ASTs and other compiler data structures (2023) (cs.cornell.edu)
Arenas, a.k.a. regions, are everywhere in modern language implementations. One form of arenas is both super simple and surprisingly effective for compilers and compiler-like things. Maybe because of its simplicity, I haven’t seen the basic technique in many compiler courses—or anywhere else in a CS curriculum for that matter. This post is an introduction to the idea and its many virtues.
Experiments with Byte Matrix Multiplication (github.com/serge-sans-paille)
It's quite common in machine learning operations to multiply a matrix of unsigned byte by a matrix of signed byte.
Northeastern's redesign of the CS curriculum (huntnewsnu.com)
On a university level, what makes for a good computer science curriculum?
Learning how to think with Meta Chain-of-Thought (arxiv.org)
We propose a novel framework, Meta Chain-of-Thought (Meta-CoT), which extends traditional Chain-of-Thought (CoT) by explicitly modeling the underlying reasoning required to arrive at a particular CoT.
Collatz's Ant and similarity of Collatz sequences (gbragafibra.github.io)
This is a brief continuation of a previous post (Repo), which introduced such visualization for collatz sequences based on Langton’s Ant.
Some programming language ideas (jerf.org)
Programming languages seem to have somewhat stagnated to me. A lot of shuffling around ideas that already exist, not a lot of new ones.
Operating System in 1,000 Lines – Intro (vercel.app)
Hey there! In this book, we're going to build a small operating system from scratch, step by step.
If GPUs Are So Good, Why Do We Still Use CPUs at All? (codingstuff.substack.com)
There’s this old video from 2009 that’s been going viral on Twitter recently. Its supposed to give viewers an intuition of the difference between CPUs and GPUs.
Deformable Image Registration KU Repository (github.com/ThomasAlscher1991)
The Deformable Image Registration KU repository contains software developed at the Department of Computer Science at the University of Copenhagen dealing with flow based image registration.
SAT Solver Etudes I (philipzucker.com)
SAT solving is kind of too big a topic for one post. Here is some discussion, programs and links.
Minimum bipartite matching via Riemann optimization (2023) (ocramz.github.io)
Some time ago I ran into two separate instances of the same combinatorial optimization problem in the span of a few days, and decided to read up a little on the fundamentals. The two applications were object tracking in videos, and peak alignment in chromatography data.
C is not a Low Level Language (dl.acm.org)
Types and Programming Languages (cis.upenn.edu)
Programming as Theory Building (1985) [pdf] (cs.wisc.edu)
XORShift for Magic Bitboards (strydr.net)
Devlog 0x1. This edition covers my implementation of a pseudo random number generator using the XORSHIFT32 algorithm.
Transcendental Syntax (github.com/engboris)
The transcendental syntax is a method of constructing logical abstractions from a low-level elementary and "logic-agnostic" language.
The Recursive Book of Recursion (inventwithpython.com)
Recursion, and recursive algorithms, have a reputation for being intimidating. They're seen as an advanced computer science topic often brought up in coding interviews. Moreover, coders often perceive the use of a recursive algorithm as a sophisticated solution that only true programmers can produce. But there's nothing magical about recursion. Its fearsome reputation is more a product of poor teaching than of the complexity of recursion itself.
1.58-Bit Flux (chenglin-yang.github.io)
We present 1.58-bit FLUX, the first successful approach to quantizing the state-of-the-art text-to-image generation model, FLUX.1-dev, using 1.58-bit weights (i.e., values in {-1, 0, +1}) while maintaining comparable performance for generating 1024 x 1024 images.
In Search of Types (2014) [pdf] (humprog.org)
The Upside of the Pentium Bug (1995) [pdf] (cecs.uci.edu)