Articles & Engineering Notes

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.

Taha Dostifam
6 min
9/20/2025
Read More
operating-systemsmemory-management

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.

Taha Dostifam
7 min
9/20/2025
Read More
OOPDOP

Alleviating Complexity in OOP Systems

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.

Taha Dostifam
4 min
9/5/2025
Read More
DOPFP

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.

Taha Dostifam
4 min
9/5/2025
Read More