¿Qué es el Metalenguaje Estándar (SML)?

Standard Metal Language (SML) es un lenguaje de programación con seguridad de tipos que encapsula numerosas ideas innovadoras en el plan o diseño del lenguaje de programación. Es un lenguaje compuesto estáticamente, con un marco de tipo extensible. Admite la inferencia de tipos polimórficos, lo que elimina la carga de especificar tipos de variables y fomenta significativamente la reutilización del código. Proporciona una capacidad productiva programada para estructuras de datos y funciones. Es un lenguaje de programación funcional, particular y de propósito general con verificación de tipo de compilación e inferencia de tipo. Es la corriente principal entre los estudiosos del compilador y los analistas de lenguajes de programación, así como en la mejora de la demostración de teoremas. Es una versión avanzada de ML, el lenguaje de programación utilizado en la Lógica para Funciones Computables (LCF)proyecto de demostración de hipótesis. Es particular entre los lenguajes de uso general que tienen una especificación adecuada, dada como reglas de escritura y semántica operativa, que se desarrolló por completo en 1997. 

Elementos básicos de SML

1. Expresión: Una expresión se representa usando los operandos y operadores. En esto, se requiere expresión  Infix para la evaluación de expresiones.
Ejemplo : 

- 10 + 20
val it = 30 : int

2. Variables: Aquí, las variables se pueden definir usando la palabra clave val
Ejemplo :

- val a = 2;
- val b = 3;
- val c = a + b;
val c = 5 : int

3. Imprimir: el comando de impresión se utiliza para mostrar la salida en SML. 
Ejemplo : 

- print ("Hello this is my first program in SML ");
Hello this is my first program in SML val it = () : unit

4. Declaraciones condicionales: la condición se puede especificar mediante palabras clave if-else. 
Ejemplo : 

- if 10 > 20 then print ("Yes") else print ("No");
No val it = () : unit

5. Funciones o Procedimiento: El operador fun se utiliza para definir las funciones. 
Ejemplo : 

- fun fact 0 = 1

6. Recursión: una recursión es un enfoque en el que la función se llama a sí misma dentro de un argumento y, al llegar a la condición de terminación, el control vuelve a la función de llamada. Hay dos propiedades que debe tener una función recursiva: 

  1. Criterio base: debe haber al menos un criterio o condición base de modo que cuando se cumpla esta condición, la función deje de llamarse a sí misma de forma recursiva.
  2. Enfoque progresivo: las llamadas recursivas deben progresar de tal manera que cada vez que se realice una llamada recursiva se acerque más al criterio base. Muchos lenguajes de programación implementan la recursividad utilizando la estructura de datos de pila

Ejemplo de recursividad en un programa factorial desarrollado en SML

Recursion Program

 

7. Manipulación de listas y procesamiento de listas en SML: la lista se representa como: 

Ejemplo :

- [10, 20, 30, 40];
val it = [10, 20, 30, 40] : int list

Ejemplos

Ejemplo#1: Encontrar la suma de todos los elementos de una lista.

Sum of all elements of list

 

Ejemplo#2: Encontrar el producto de todos los elementos de una lista.

Product of all elements of list

 

Ejemplo#3: Para encontrar la longitud de una lista sin usar la palabra clave de longitud.

Length of list

Ventajas de SML

  1. Tiene un patrón de diseño de alto nivel. Su diseño permite una programación más eficiente y confiable con la automatización y supresión de muchos niveles bajos de información, como la formación de datos y el control de recursos.
  2. Proporciona coherencia y articulación, es decir, la capacidad de tratar las funciones como atributos de primer nivel, el uso de funciones de orden superior para demostrar una amplia gama de componentes del sistema, el uso de patrones coincidentes para un análisis estadístico preciso y la accesibilidad de las construcciones indispensables. gran programación declarativa dentro de un marco teórico predecible y claro.
  3. Proporciona seguridad y, al ser resistente, ayuda en la comprobación de tipos de variables, lo que identifica muchos errores en tiempo de compilación. La detección de errores se ve reforzada por el uso del reconocimiento de patrones, cuyo objetivo es mantener la protección de todos los casos, ya que el compilador puede identificar y eliminar las coincidencias incompletas de forma estática, y por el método de anomalías, que ofrece una manera diligente y segura de tipos para tratar con el tiempo de ejecución potencial. excepciones
  4. Ofrece modularidad. El módulo ML es un subconjunto endógeno del marco fundamental. Ofrece el requerimiento y ejecución del desprendimiento de interfaz y promueve la abstracción y parametrización. Estos servicios son muy eficientes para construir programas grandes e identificar los elementos de software genérico y reutilizable.

Desventajas de SML

  1. La principal desventaja de SML es que sufre de ‘fragmentación’, es decir, varias actividades específicas, como producir números aleatorios, ordenar (ya sea listas o arreglos), o alguna forma de secuencia asociativa, carece de funciones y estructuras de datos.
  2. Tiene una implementación débil. Si hubiera un diseño realmente potente, se podrían haber solucionado los inconvenientes de la biblioteca digital.
  3. Fue desarrollado o estandarizado bastante temprano, antes de que el guión realmente madurara. El estándar de ML inicial pasó por alto muchas de las bases de datos utilizables, y el modelo tenía algunas pesadillas, como variables de forma baja. Por lo tanto, usar Ocaml o Haskell se volvió mucho mejor para los humanos.

Publicación traducida automáticamente

Artículo escrito por nirmit_srivastava y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *