hdolder.com srl

  hdc Home    |    Contenido    |    KO1    |    Director    |    Direcciones    |    email
  M&P TBW - BSX: BScript eXpressions

 

 

 

 *** Documento en elaboración ***  v151

En M&P un objeto de tipo BSX encapsula la representación interna de una BScript eXpression. Ver Clase BSX.

Tipos de Datos BScript

En BScript los tipos de datos son básicamente dos: Átomos y Listas.

Ejemplos:

Átomos: 123 pepe “un string”
Lista: (156 pepito “otro string” (juan (luis 3) marta))
Una Lista contiene un conjunto de valores que pueden ser de diferentes Tipos.

 BScript  eXpressions

Los átomos y las listas constituyen BScript eXpressions.

Formatos Externo e Interno

En los ejemplos anteriores los datos se muestran en su formato externo (humanamente legible). El formato externo es un texto (string de caracteres). Para su procesamiento es necesario traducirlo al formato interno.

Para la traducción la Clase BSX  provee el método "Parse":

BSX BSX1 = BSX.Parse(String sexp)

y para traducir del formato interno al externo basta con hacer:

String sexp2 = BSX1.Text;

Evaluación de BScript eXpressions

La tarea de un procesador BScript es evaluar BScript eXxpressions.

La evaluación de un valor atómico (salvo que el átomo sea un Symbol) devuelve el mismo valor.

Un Symbol es átomo que representa una variable BScript a la cual se le asignan valores, La evaluación de un Symbol devuelve el valor que la variable tiene asignado.

Eje,mplo de asignación:

(setq descuento 10.3)

Pero una lista puede ser un dato (cuyo formato es una lista) o ser un llamado a una función

(juan luis marta)
(plus 1 2 3)

Salvo que se indique lo contrario el procesador considera las listas como llamados a funciones.

Para indicarle al procesador que la lista es un dato se usa el operador quote (`):

`(juan luis marta)

que es la forma abreviada de:

(quote (juan luis marta))

donde "quote" es una función que simplemente devuelve el argumento suministrado sin evaluarlo.

Evaluación BScript

La evaluación en BLOCKS se realiza mediante el método "Eval" de la Clase BSX:

BSX BSX2 = BSX1.Eval();

Para obtener el valor encapsulado en un objeto BSX basta con hacer:

object oexp1 = BSX2.Value;

Serialización y Deserialización en BScript

El proceso de traducción del formato interno al externo se denomina Serialización y el proceso inverso se denomina Deserialización.

En BScript estos procesos se realizan con máxima performance como consecuencia del isomorfismo entre el formato externo y el formato interno.

Las eXpressions BScript son compactas y permiten una serialización y deserialización de máxima performance en el Procesamiento Distribuido.
 

  TBW The BLOCKS World

©2012 hdolder.com srl  

CIYd06JGz
2011-12-16