Deciding on what kinds of data to support
There are at least three categories of data types to consider in your language design. The first one is atomic, scalar primitive types, often called first-class data types. The second is composite or container types, which hold and organize collections of values. The third (which may be variants of the first or second categories) is application domain-specific types. You should formulate a plan for each of these categories.
Atomic types
Atomic types are generally built-in and immutable. As the word immutable suggests, you cannot modify existing atomic values, only combine them to compute new values. Pretty much all languages have such built-in atomic types for numbers and a few additional types. A Boolean type, null type, and maybe a string type are common atomics, but some languages have others.You decide just how complicated to get with atomics: how many different machine representations of integers and real numbers do programs written in your...