Learning Lua Step-By-Step (Part 4)

This entry is part 5 of 15 in the series Learning Lua Step-By-Step

It’s important to close a file after you’re done working with it. Leaving a file open can lead to resource leaks and other issues, especially in long-running programs. Always remember to call io.close() when you’re finished with a file.

Learning Lua Step-By-Step (Part 3)

This entry is part 4 of 15 in the series Learning Lua Step-By-Step

Learn how Lua’s versatile data structures, including tables, arrays, and dictionaries, empower developers to efficiently organize and manipulate data. Explore tutorials, books, and online courses to deepen your understanding and master these essential concepts in Lua programming.

Learning Lua Step-By-Step (Part 2)

This entry is part 3 of 15 in the series Learning Lua Step-By-Step

Dive deeper into the fundamental building blocks of Lua programming. Learn about variables, conditional statements, functions, and loops. Explore how to get user input and control the flow of your Lua programs.

Learning Lua Step-By=Step

This entry is part 2 of 15 in the series Learning Lua Step-By-Step

Learn Lua programming from the ground up with this step-by-step tutorial. Explore the fundamentals of Lua, including data types, console output, and more. Perfect for beginners ages 10 and up.

Getting Ready to Learn Lua Step-By-Step

This entry is part 1 of 15 in the series Learning Lua Step-By-Step

This article is part of the Learning Lua Step-By-Step series. It covers the basics of setting up your Lua development environment and toolchain. This includes creating a “projects” directory and installing Git, Lua, and ZeroBrane Studio IDE (Integrated Development Environment) you will use for writing your Lua programs. Note that the only required software is

Going Nostalgic With Text Adventures And QB64!

Embark on an exciting journey into the world of text adventure game development with this comprehensive guide to creating your own game in BASIC. Explore the intricacies of game design, programming techniques, and interactive storytelling as you learn to craft immersive experiences for players.

Unraveling Markup Languages: A Comprehensive Guide

Explore the diverse world of markup languages, from HTML to YAML, and discover their applications in web development, data interchange, and documentation. Understand the differences between markup and programming languages, and learn when to use a custom markup language for specialized requirements.

Tree Rewriting And Shunting Yard Parsers

This entry is part 2 of 2 in the series Handling Associativity And Precedence in Handwritten Parser

Introduction Last time we discussed our mission, built a lexer and tree printer to be used throughout our experiments, and introduced the Recursive decent parser. Parsing mathematical expressions involves interpreting their structure, which can be complex due to the presence of operators with different precedence levels and associativity rules. In this article series, we delve into

Handling Associativity and Precedence in Handwritten Parsers

This entry is part 1 of 2 in the series Handling Associativity And Precedence in Handwritten Parser

In the context of Abstract Syntax Trees (ASTs) and parse trees, the terms “higher” and “lower” precedence, as well as tree “depth,” take on a different meaning due to the way parsers traverse the tree structure. In this context, “higher” precedence refers to nodes that are deeper in the tree, further away from the root. When parsers descend into the tree to evaluate expressions or execute algorithms, they typically start at the root and move downwards towards the leaves. Therefore, nodes that are deeper in the tree, or have a higher depth, are processed first, followed by nodes closer to the root. Conversely, nodes closer to the root have lower depth and are processed later in the parsing or evaluation process. This understanding is crucial for parsers and algorithms that rely on tree traversal to correctly interpret and evaluate expressions or perform other operations on tree structures. I have heard these terms used in reverse and for trees in general, this may be correct. I mention this because it can cause confusion, it is worth clarifying these terms when conversing with others.

Mastering Language Transitions: Techniques for Seamless Code Migration

Transitioning between programming languages is a common challenge for developers. Whether moving from Java to JavaScript, JavaScript to TypeScript, or C/C++ to Zig, mastering the nuances of each language is essential for seamless code migration. In this article, we explore techniques to overcome syntax confusion, leverage language-specific conventions, and navigate language transitions with confidence and proficiency.