Insights, tutorials, and dev logs from our community members
parserscompiler-design
Data-Oriented Parser Design with Token Streams
This article explores how treating a parser as a consumer of a token iterator, rather than relying on a central mutable state, simplifies ambiguity resolution, improves modularity, and enhances performance. We compare this data-oriented approach with traditional parser architectures and highlight best practices for implementation.
Dynamic Relocation in Operating Systems: A Detailed Guide and Comparison with Static Relocation
This article explains the concepts of dynamic and static relocation in operating systems, focusing on how dynamic relocation provides runtime address translation through hardware support. It compares both methods in terms of flexibility, memory protection, and usage in modern OS like the Linux kernel.
This article explores how disciplined practices in object-oriented programming (OOP), such as favoring composition over inheritance and keeping classes small, can help manage complexity. It also introduces Data-Oriented Programming (DOP) as an alternative paradigm that fundamentally addresses complexity by separating code from data, embracing immutability, and using generic data structures. The piece explains why OOP systems can become complex and presents DOP's core principles as a complementary or alternative approach to building more robust and maintainable software.
Data-Oriented Programming vs. Functional Programming: Complementary Approaches to Complexity
This article explores the relationship between Data-Oriented Programming (DOP) and Functional Programming (FP), two paradigms that address software complexity in complementary ways. While both reject OOP's entanglement of code and state, DOP focuses on optimizing data layout and memory efficiency for performance, whereas FP emphasizes immutability and pure functions for correctness. Learn how these approaches can work together, with FP providing high-level transformation semantics and DOP enabling low-level hardware efficiency.