English (UK)

Quoting Isaac Newton "if I have seen further than others, it is by standing upon the shoulders of giants".
A complex project is always based on some work done by others previously. Every artificial intelligence project is based on many theories and projects discovered in past years.
This is also true of CassandraAI project.

This project tries to be completely described.
CassandraAI is a software, so its features is based on underlying software levels and on a hardware level.
Luckly, in internet we can find many open source projects that describe these levels well.

First and deepest level is hardware.
Leaving aside experimental quantum computing and biochips, current information science is based on silicon technology. Logic circuits, which work with binary mathematics, printed on a silicon chips.
The central processing unit is the core of current information technology.
There are various types of cpu, from simple microcontrollers to multicore CPUs. The complexity of modern CPUs is enormous.
However, the basic principles have always been the same.

 

Visual 6502 project (http://www.visual6502.org), which can be found on internet, is very interesting. It's based on the 6502 processor circuits.
The MOS 6502 is an 8-bit microprocessor presented by MOS Technology in September 1975. MOS 6502 was put on sale for $ 25 and was the cheapest CPU available on the market. It has been used in many famous products, marketed in the late seventies and early eighties, such as the Apple II and the Commodore VIC-20. It is a historical CPU.
In this project, polygonal vector models of each of the physical components of the chip are created, about 20,000 in total for the 6502. These components form circuits in some simple ways based on how they contact each other, so by intersecting our polygons they were able to create a complete digital model and a simulation at the transistor level.
This model is very precise and can perform the classic 6502 program.
The project allows you to write and test a real code, written in Assembly language, so you can see how a CPU works.
Obviously, modern CPUs contain many additional circuits, but the basic principles are the same.

 

A modern computer is composed of the CPU and many other support circuits. The computing power available today has made possible to create a software that can emulate these circuits.
Virtualization technologies have made possible to abstract every physical aspect of a computer into software procedures.
QEmu project (https://www.qemu.org) is a generic and open source machine emulator and virtualizer.
It allows you to replicate the complete set of computer components, virtualized within software.
The project is very extensive, but with a little patience it is possible to read the source code and see how the individual parts work in detail.

 

Hardware programming is a complicated activity, so computers are sold with a builtin software to use machine in a simple way. This software is called operating system.
The most common operating system for home users is Microsoft Windows, but Mac OS X and Linux are also very popular.
There are hundreds of operating systems on internet, many of which are based on the Linux kernel.
There is also an open source project for an operating system based on Windows NT architecture. It's called ReactOS (https://www.reactos.org).
In ReactOS source code you can find all the architectures of a modern operating system.
It's over nine million lines of source code, it's challenging to study it, but you can do it if you want.

 

 

CassandraAI, like other applications, is based on these underlying levels that we have explained.
To write a software application there are many ways which use various types of programming languages.
Operating systems are tipically written in Assembly and in most of code in C, a high level language simpler than Assembly, but which can be compiled as a machine language.
CassandraAI project doesn't want to be tied to the hardware on which it's executed, so an independent language was chosen to write it.
Java could have been a great choice, but C# is chosen for the developer's background.
C# is a programming language created by Microsoft. With the proprietary version, Net Framework, there is an open source implementation, called Mono (https://www.mono-project.com).
Mono is able to execute the code written for CassandraAI.
If you want, you can read the source code of the compiler and runtime, to understand how it works.
Recently, starting from Net Framework and Mono, we move to the new NetCore open source implementation.
CassandraAI project software is written mainly in C# language.
The rover's firmware are written in C.

 

Writing software is a complex activity.
It's virtually possible to write all code by hand with a text editor, but really it's impossible if you don't have an integrated development environment to help programmers write code.
CassandraAI is a complex software, it needs an IDE to be developed.
The project was initially developed with an open source IDE suitable for C#: SharpDevelop (http://www.icsharpcode.net/opensource/sd/Default.aspx)

 

Recently the project has moved to the Community version of Microsoft's main IDE, Visual Studio (https://visualstudio.microsoft.com).

 

Furthermore, the Arduino IDE (https://www.arduino.cc/en/main/software) was used to write rover's firmware.

Punto Informatico

Wired