Types, Traits and Classes

Introduction Programming languages typically categorize data using the concept of Type. Even if a language has dynamic types or even a few simple data structures. In this blog we’ll look at the probable design of the Type System for Harth: Type - which describe the relationships between types (sub-typing) and sets of functions that types allow. Trait - which usually provide function, method and property implementations, but no state. Class - which typically can generate actual instances, and have state. Read On →

Names and Identities

Introduction An important aspect of new programming languages and their design is Naming and Identities. Essentially: How do we name our new language’s definitions (classes, functions, etc). How does the language uniquely identify these same things (classes, functions, etc). Names Software Engineers, usually English speaking, typically use easy to remember and descriptive names for classes, functions and similar. There is a lot of variance in style and length, so our new language has to cope with this. Read On →

Build Bridges, Not Walls

Architecture Often in software archictecure you have a few large components that need to connect. In real-life this might be analagous to two different cities seperated by a river. Almost certainly we would have already have built a bridge between them to cross this natural boundary. Fearful or foolish people might have built walls between them, but we’re not foolish. Bridges In Real Life The city of Vancouver in British Columbia (where I live), there’s the Port Mann Bridge that connects Vancouver with the city of Surrey to the south. Read On →

Syntax Ideas and Prototype Examples

Familiar Programming Language with Fully Reified, Immutable, and Homoiconic code/data. Familiar The syntax and text of a Harth program should be familiar to most programmers. Reified Reified means that all levels of the programming language model (text, lexical/tokens, AST, Semantic Model, Project, Binaries) are processed and available at run-time as ordinary data. The data where possible immutable (or near enough). Immutable Immutable data gives greater flexibility for shared state, caching, checksum, versioning, undo. Read On →

Test Blog Page

Test Blog Page, shows result of basic Markdown and Hugo templates with styles.

Read On →