Cell: Un lenguaje de programación interpretado

A

Cell es un pequeño lenguaje de programación interpretado que tiene solamente 12 instrucciones.
El código fuente de un programa escrito en Cell contiene unicamente números del 0 al 9
y los símbolos "+" y "-". Todo lo demás, se entenderá como comentarios en el código.

¿ Cómo funciona ?

Cell funciona bajo una máquina virtual muy simple, comprendida por:

Una tabla de memoria que contiene 100 celdas a las que se pueden
asignar valores numéricos distintos.

Un cursor que permite seleccionar celdas para realizar operaciones
sobre ellas.

Una tabla de operaciones posibles a realizar.

Las instrucciones

Para movernos en la tabla de memoria: (las 100 celdas)

8 : nos mueve hacia arriba
2 : nos mueve hacia abajo
4 : nos mueve hacia la izquierda
6 : nos mueve hacia la derecha

5 : selecciona la celda actual

Para movernos en la tabla de operaciones:

  • : nos mueve hacia arriba
  • : nos mueve hacia abajo
    7 : nos mueve hacia la izquierda
    9 : nos mueve hacia la derecha

0 : ejecuta la operación actual

Por último, salida de datos:

1 : imprime valor de la celda actual como caracter (ascii)
3 : imprime valor de la celda actual como entero (float en realidad)

Pongamos un ejemplo sencillo

Supongamos que todas las celdas empiezan valiendo "1", y que el cursor
está en la primera celda, asimismo supongamos que la primera operación
de la tabla suma 1 al valor actual de la celda:

30303

Esto imprimiría: 123

"3" imprime el valor de la celda actual como entero
"0" va sumando uno al valor de la celda que empieza siendo "1" y llega a ser "3".

¿ Porqué Cell ?

Porque me apetecía hacerlo, no hay más razones. Cell no va a ser el sustituto
del próximo PASCAL, C++, BASIC o cualquier otro lenguaje. Además, ha sido
un experimento divertido. Cell es tan estúpido como Brainfuck o Whitespace y
probablemente nadie con cabeza lo usaría para nada serio.

En un futuro por simple hobbie, añadiré a Cell bucles, condiciones, arrays,
etc a modo de operaciones que se puedan llamar desde las tablas.

Cell de momento es sólo un experimento y no tiene documentación. Para ver
cómo funciona hay que ver el cell.cpp. (código en C++)

Descargar Cell (ejecutable, fuente C++ y ejemplo de "Hola mundo")
http://s37.yousendit.com/d.aspx?id=2T7DQCPSXO2KS3E5WKPAVLDB4G

Ertulkas

con gente como tu da gusto , buen trabajo ;)

A

Mercí. Por cierto, una nota práctica; el código se ve identado correctamente en Vi. En Dev-cpp y otros parece un lío.

Por si alguien le interesa:
http://www.vim.org/download.php

guner

Es bastante curioso. Habría que ver la cara de alguien al que le dices que un archivo que está lleno de números, mases y menoses sea un fuente.

He encontrado algunas cosas en el cpp que no tienen mucho sentido.

case 1: cell_mem[x]-=cell_mem[x]; break; // Resta: x = x-x
case 9: cell_mem[x]=0; break; // Cero: x = 0

case 3: cell_mem[x]/=cell_mem[x]; break; // División: x = x/x
case 21: cell_mem[x]=1; break; // Uno: X = 1

Ahora puedes asignar otras dos operaciones ^^

maRc

Al principio de leerlo, pensaba que era el típico lenguaje esóterico, similar Brainfuck o Ook!, que se había inventado algún informático pirado, pero va y resulta que el que lo ha inventado eres tu :P

Yo también tenía en mente hacer algo similar, aunque de momento es uno de tantos proyectos futuros que "he dejado para más tarde".

Mejoras: hazle un compilador :)

Usuarios habituales

  • maRc
  • guner
  • Archville
  • Ertulkas