Want to contribute? Fork us in GitHub!

Recursive tuple and varargs

We’re continuing to observe new features of the latest release 0.34.1 of EO, and today we talk about new recursive implementation of tuple object and why we got rid of varargs in our language.

Covert EO to φ-calculus expression and back

In the recently released version 0.34.0, we have implemented several changes to EO. Today, we will discuss the conversion of EO to φ-calculus expression and vice versa.

$ Object

In the world of EO programming, the $ object acting as a syntax sugar that refers to the current abstract object it is used in. This seemingly simple yet powerful feature provides programmers with an elegant way to manipulate and access objects within their code, ultimately enhancing readability and ease of use. In this blog post, we will dive deep into the concept of the $ object and shed light on its practical applications through illustrative examples.

Comparison of 0.0 and -0.0

Due to the peculiarities of working with data in EO, an interesting quirk had been arising when comparing 0.0 and -0.0. The fact is that in EO, these two values were not considered equal until we made changes.

Until recently, the comparison of 0.0 and -0.0 in EO didn’t work like in other languages, but we changed that. This short blog post provides a simplified explanation of number encodings, how such comparison takes place in popular programming languages, and how we changed this comparison in EO to meet the standard.

Application to application

In the process of working on the recent release 0.32.0, we’ve faced an interesting case related to one of the fundamental concepts of EO in particular and phi-calculus in general - application.

This blog post will attempt to explain what application is under the hood, how it works in our compiler, and why this code (arr.at 0) "Hello" does not work in the way you expect.

MEMORY as a container for a real data

In the recently released version 0.31.0, we’ve changed the behavior of the memory object. Until now, when we stored an object in memory, it attempted to dataize the object into data and started behaving accordingly. However, we are now reevaluating the concept of data within our language, and the memory is an entry point.

The CAGE Prohibits Storing Objects Formed Differently

In the recently released version 0.30.0 we’ve changed the writing mechanism of cage object. Until now, we could store and write to cage any object we wanted. But cage became smarter and stricter and can store only objects that have the same “form” now.

We are hiring!

ATTENTION! We are also hiring interns (BSc and MSc students). Find me in Telegram, we will discuss: yegor256.

EOLANG is an R&D project, where we create a new programming language in order to introduce new techniques of object-oriented programming. We believe that existing object-oriented languages, such as Java and C++, are not strong enough in their adherence to the object paradigm originally introduced by Alan Kay and earlier implemented in languages like Smalltalk and Self. Besides that, we expect to explore the possibility of using our new language as an intermediate representation in the process of optimization of mainstream languages. EOLANG is based on 𝜑-calculus, which is a formal foundation for it and potentially for other object-oriented languages.

We have a few open positions in our team:

  • Java developer
  • C++ developer
  • Rust developer