El diseño de este lenguaje de programación fue motivado por el deseo de
incorporar la iteración en Lisp en una manera axiomática, reformulando el
lenguaje y rescatando sus características más importantes.
En la definición de este lenguaje, el autor aprovechó las experiencias
adquiridas en los esfuerzos realizados para extender las características
del lenguaje Lisp, particularmente los encaminados a dotarle de una
aritmética adecuada y de funciones accesorias para manejo de textos.
Para la definición del lenguaje, el autor identificó que la
gran mayoría de los procedimientos computacionales consisten de
relativamente pocos elementos: una secuencia de operaciones, la selección
con base en cálculos intermedios y la repetición de los procedimientos
(iteración); y por ello, redujo los elementos de control a cuatro
símbolos:
El lenguaje no incluye transferencias incondicionales -ni las tendrá-, no utiliza etiquetas y por ello, se anticipó en una buena medida al concepto de la programación estructurada.
En REC se destina un símbolo para denotar cualquier operación,
y se le atribuye un valor lógico que interviene en el control del
programa. La secuencia de operaciones se indica concatenando los
símbolos correspondientes. Su sintaxis utiliza paréntesis redondos
para agrupar los símbolos.
La toma de alternativas en REC, se realiza de acuerdo con el
valor de la operación, el valor verdad se emplea para continuar la secuencia
y el falso, para romperla y elegir otra opción. Con ``;'' se separan las
secuencias alternativas y con ``:'' se indica la repetición de las
operaciones desde el principio.
Adicionalmente, permite la definición y el uso de subrutinas.
El uso de las subrutinas hacen de REC un lenguaje recursivo y su definición
le otorga el carácter iterativo.
Su estructura de control es, como se puede apreciar, fundamental y
económica.
Las primeras aplicaciones matizaron el desarrollo del lenguaje enfilándolo en la dirección del manejo de símbolos, aunque otras direcciones son también posibles.
La versión del lenguaje para la edición de textos tuvo un
amplio uso en diferentes aplicaciones, tanto administrativas como científicas y pedagógicas.
Principalmente se utiliza para elaborar programas de servicio inclusive,
sistemas operativos completos - y generadores de programas de aplicación-.
Después de 20 años de desarrollo del lenguaje, por parte de
su autor y de una gran cantidad de sus alumnos entre los que destaca Gerardo
Cisneros por sus aportaciones, REC encontró una nueva aplicación, que
consistió en ofrecer una opción para compilar Convert.
De esta manera, la exasperante lentitud de los programas en
Convert ya no presentó una barrera infranqueable para utilizarlo en múltiples
aplicaciones no numéricas.
Y con respecto a la pregunta original, podemos concluir que si bien en los
procesos del pensamiento los símbolos y su manejo juegan un papel
de primer orden y que las computadoras participan del manejo simbólico
desde hace tiempo y cada día lo hacen con mayor intensidad; también es
cierto que -como ya lo había percibido la legendaria Lady Lovelace- en el
siglo pasado ``sólo pueden realizar aquello que se es capaz de describirles como hacerlo''.
Por lo tanto, cuando las computadoras piensen, -si acaso llegan algún
día a hacerlo- será porque el hombre ha desentrañado los procesos del
pensamiento y ha sido capaz de describirle a un mecanismo la manera de
realizarlos.