stringtranslate.com

Delgado básico

ThinBasic es un intérprete de lenguaje de programación de tipo BASIC [1] con una arquitectura de motor de núcleo central rodeada de muchos módulos especializados. Aunque originalmente fue diseñado principalmente para la automatización de computadoras, gracias a su estructura modular se puede utilizar para una amplia gama de tareas.

Características principales

Sintaxis

Como sugiere el nombre, la mayor influencia en la sintaxis de este lenguaje fue el lenguaje BASIC. Pero, a diferencia de los BASIC tradicionales, conocidos desde la era de los 8 bits , thinBASIC difiere en algunos puntos importantes.

Por ejemplo, requiere que el programador declare variables y no incluye las infames declaraciones GOTOand GOSUB. Algunos aspectos de la sintaxis incluso están inspirados en lenguajes no BASIC, como C / C++ . [2] Gracias a esto, thinBASIC permite opcionalmente el uso de continuación de línea implícita, operadores simplificados de suma, resta, multiplicación y división, declaración e inicialización de variables abreviadas :

'Sintaxis tradicional permitida en thinBASIC DIM a AS INTEGER ' a se inicializa a 0 a = 1 ' a ahora contiene 1 a = a + 1 ' a ahora contiene 2            ' Se permite una sintaxis inspirada en C/C++ en thinBASIC INTEGER a = 1 ' a se inicializa en 1 a += 1 ' a ahora contiene 2       ' La nueva sintaxis introducida en 1.9.10.0 permite definir el tipo a partir de la expresión de cadena STRING sType = "INTEGER" DIM a LIKE sType      

Otra fuente de inspiración son las versiones modernas de BASIC, como Visual Basic o PowerBASIC .

ThinBASIC ofrece las principales sentencias de control de flujo, como SELECT CASE, IF... THEN/ELSEIF/ELSE/END IF, bucles ( infinitos , condicionales , FOR , WHILE/WEND, DO/LOOP WHILE..., DO/LOOP UNTIL...) y también pone un gran esfuerzo en proporcionar una amplia gama de funciones integradas para el procesamiento de números y, especialmente, el manejo de cadenas.

Variables y tipos de datos

ThinBASIC admite una amplia gama de tipos de datos numéricos [3] y de cadena [4] .

Además de los mencionados en la tabla anterior, un programador puede definir punteros , tipos definidos por el usuario y uniones .

Las características especiales relacionadas con los tipos definidos por el usuario en thinBASIC son: [5]

Las variables se pueden definir en un ámbito global, local o estático. ThinBASIC admite matrices de hasta tres dimensiones.

Módulos

La funcionalidad elemental del lenguaje la proporciona el llamado módulo Core , que se carga por defecto y también se encarga del análisis.

Además del módulo Core, thinBASIC ofrece otros módulos, cada uno de los cuales cubre un área específica de funcionalidad, por ejemplo:

Cada módulo está representado por una única DLL con una estructura específica. Esto permite que el módulo contenga no solo funciones y procedimientos típicos, sino también, por ejemplo, constantes y definiciones de tipos definidos por el usuario, disponibles de inmediato para el script sin necesidad de un archivo de encabezado . Lo único que se necesita es mencionar explícitamente el uso del módulo en el código; para el manejo de archivos, se vería así:

' Esto carga el módulo para su uso Utiliza "Archivo" ' La función File_Load proviene del módulo, devuelve el contenido del archivo pasado en forma de cadena String sBuffer = File_Load ( "C:\text.txt" )   

Funciones y procedimientos

Para estructurar mejor el código, thinBASIC proporciona la funcionalidad de funciones y procedimientos. Existe una función con un tratamiento especial, llamada TBMAIN, que se garantiza que se ejecutará primero. Representa la misma función que la función main() en el lenguaje de programación C , pero su uso es opcional.

Un programador puede definir funciones y procedimientos personalizados (llamados Subs), que pueden tener hasta 32 parámetros. No es necesario declarar las funciones y los procedimientos antes de su uso. Los parámetros se pueden marcar como opcionales y también se pueden inicializar con valores predeterminados. Se puede especificar que cada parámetro se pase por valor (predeterminado) o por referencia.

Utiliza "Consola" ' El cuerpo del programa comienza en la función TBMain Función TBMain ()  MyFunction ( 10 ) ' Esto imprimirá 10 20 30, porque los parámetros opcionales no utilizados #2 y #3 se inicializan en 20 y 30  MyFunction ( 10 , 3 ) ' Esto imprimirá 10 3 30, porque el parámetro opcional no utilizado #3 se inicializa a 30   MyFunction ( 10 , 3 , 5 ) ' Esto imprimirá 10 3 5, porque especificamos todos los parámetros, por lo que se descartan los valores predeterminados    Tecla de espera de consolaFunción final ' Función definida por el usuario con parámetros opcionales con valores predeterminados Función MyFunction ( a como número , Opcional b como número = 20 , c como número = 30 )                Consola_PrintL ( a , b , c )  Función final 

Las funciones se pueden llamar directamente, como en la lista anterior, o componiendo su nombre en tiempo de ejecución.

Vinculación a API de terceros

ThinBASIC admite la llamada de funciones desde DLL de terceros; el programador debe declararlas primero para poder acceder a la funcionalidad.

Gracias a este mecanismo, thinBASIC permite utilizar tecnologías como OpenGL , OpenCL , [6] XML , ODE y muchas otras.

Organización del código

ThinBASIC no admite ningún tipo de archivo de proyecto en este momento, pero fomenta la división del código en unidades al proporcionar múltiples extensiones de archivo para diferentes usos:

El código principal puede hacer referencia a estos archivos mediante la directiva #include, que puede utilizar comodines:

# incluye "MyDLLWrapper.tBasicI" # incluye "MyRoutines.tBasicU"  # include "dialog_*.tBasicU" ' Esto incluiría todos los archivos que coincidan con el comodín dialog_*.tBasicU, cuando esté presente  Función TBMain () '-- El código principal va aquí y puede usar la funcionalidad de los archivos #incluidos   Función final 

Personalización

El lenguaje se puede mejorar mediante el desarrollo de módulos utilizando SDK para muchos lenguajes ( PowerBASIC , FreeBASIC , C , MASM ).

Documentación

El equipo de desarrollo pone un gran énfasis en la documentación del lenguaje y en los recursos de aprendizaje. El lenguaje en sí está documentado en un extenso archivo de ayuda [7] y la instalación predeterminada también contiene un tutorial y mucho código de ejemplo.

Se han publicado varios artículos sobre el uso de thinBASIC en la revista ThinBasic Journal y también en la página de inicio del lenguaje de programación (consulte los enlaces externos).

Entorno de desarrollo integrado (IDE)

IDE thinAir y thinBasic

ThinBASIC viene con su propio IDE, llamado thinAir, en la instalación predeterminada. [8] Ofrece:


ThinAir también permite utilizar el depurador.
Este componente se llama thinDebug [10] y se puede ver en la imagen que aparece a continuación.

Ejemplos de código

Programa de consola, que pregunta al usuario su nombre y luego lo saluda:

' Especifica que el programa utilizará funciones del módulo de consola que utiliza "Consola" ' TBMain representa el cuerpo principal de la función del programa TBMain () ' Crea una variable para almacenar el nombre de usuario local UserName como cadena       ' Pide al usuario el nombre Console_Print ( "¿Cuál es tu nombre?: " )  ' Lo almacena en la variable UserName = Console_ReadLine    ' Si la longitud del nombre de usuario es 0, entonces no se especifica ningún nombre; de ​​lo contrario, el programa dirá hola si len ( Nombre de usuario ) = 0 entonces Console_PrintLine ( "No se especificó ningún nombre de usuario..." ) de lo contrario Console_PrintLine ( "Hola " + Nombre de usuario + "!" ) fin si                 ' Espera cualquier tecla del usuario antes de que finalice el programa Función de fin Console_WaitKey  

Pros y contras

ThinBASIC fue diseñado para la plataforma Windows y es por eso que hace un buen uso de los recursos que brinda este sistema, como registro , interfaz de usuario, trabajo con procesos, COM , DLLs . Aunque es interpretado, se considera que thinBASIC tiene una ejecución generalmente rápida. [11] Cuando la naturaleza de intérprete del lenguaje llega a los límites, es posible realizar optimizaciones utilizando la compilación JIT parcial . Otra fortaleza del lenguaje es una amplia gama de comandos que cubren varias áreas de interés y, para BASIC tradicionalmente, un fuerte enfoque en el manejo de cadenas. El lenguaje está en continuo desarrollo y mantenimiento. [12]

El hecho de que ThinBASIC esté diseñado únicamente para Windows también puede ser visto como una desventaja para aquellos que buscan herramientas multiplataforma. La velocidad de ejecución sin el uso de optimizaciones es menor en comparación con la salida de los compiladores , gracias a la naturaleza del intérprete de lenguaje .

Compatibilidad

thinBASIC se ha desarrollado bajo Microsoft Windows XP Professional utilizando PowerBASIC , [13] y requiere Internet Explorer versión 5.50 o superior.

Referencias

  1. ^ Olmi, E. Manual de ayuda de ThinBASIC. Introducción a ThinBASIC. Consultado el 21 de septiembre de 2011.
  2. ^ basic.mindteq.com. THINBASIC. Consultado el 15 de febrero de 2013.
  3. ^ Olmi, E. Manual de ayuda de ThinBASIC. Variables numéricas. Consultado el 21 de septiembre de 2011.
  4. ^ Olmi, E. Manual de ayuda de ThinBASIC. Variables de cadena. Consultado el 21 de septiembre de 2011.
  5. ^ Olmi, E. Manual de ayuda de ThinBASIC. Tipo. Consultado el 21 de septiembre de 2011.
  6. ^ SCHREIBER, P.; ONDROUŠEK, V.; VĚCHET, S.; KREJSA, J.. Paralelización del método de coincidencia de escaneo precalculado para el procesamiento de tarjetas gráficas . Actas de la 1.ª conferencia internacional Robótica en la educación, RiE2010. 2010. pág. 202
  7. ^ Olmi, E. Manual de ayuda de ThinBASIC. Cómo utilizarlo. Consultado el 21 de septiembre de 2011.
  8. ^ Olmi, E. Manual de ayuda de ThinBASIC. Cómo utilizarlo. Consultado el 21 de septiembre de 2011.
  9. ^ basic.mindteq.com. THINBASIC. Consultado el 15 de febrero de 2013.
  10. ^ Olmi, E. Manual de ayuda de ThinBASIC. ThinTools/thinDebug. Consultado el 21 de septiembre de 2011.
  11. ^ basic.mindteq.com. THINBASIC. Consultado el 15 de febrero de 2013.
  12. ^ Olmi, E. Manual de ayuda de ThinBASIC. Novedades. Consultado el 29 de julio de 2017.
  13. ^ http://www.powerbasic.com. Creado con PowerBASIC. Consultado el 21 de septiembre de 2011.

Enlaces externos