MóvilBÁSICO | |
---|---|
clase de idioma | lenguaje de programación |
tipo de ejecución | Interpretado |
Apareció en | 2003 |
Autor | David J Primero |
extensión de archivo | .bas, .lis |
Liberar |
|
sido influenciado | Básico |
Archivos multimedia en Wikimedia Commons |
MobileBASIC es un lenguaje de programación interpretado utilizado para teléfonos móviles habilitados para MIDP-2.0 . Le permite escribir fácilmente programas directamente en su teléfono o tableta Android. Existe en 4 implementaciones: como un entorno de programación para una computadora, como un MIDlet normal para dispositivos móviles, como una aplicación para dispositivos con Android e iOS .
El lenguaje apareció en 2002 gracias al programador David Firth como una herramienta fácil y cómoda para desarrollar software para teléfonos móviles.
Las versiones oficiales están numeradas de la siguiente manera:
La sintaxis de la versión móvil es muy similar a las antiguas versiones BASIC . En primer lugar, se utiliza la numeración de líneas obligatoria y, en segundo lugar, no se utilizan funciones y procedimientos definidos por el usuario (en su lugar, se utiliza el comando GOSUB). Aquí hay un código de ejemplo en MobileBASIC:
10 INPUT "Ingrese su nombre" , NOMBRE $ 20 PRINT "Hola, " + NOMBRE $ + "!" 30 SI NO ES EN CLAVE ( 0 ) ENTONCES VAYA A 30 40 FINDesde la línea 30 se puede ver que el teclado está bien pensado en este idioma. Pero con otras características importantes del teléfono: formularios y lienzos , todo es mucho peor. Comencemos con el hecho de que no puede incluir más de un control en un formulario. En segundo lugar, el lienzo y los formularios de la mayoría de los teléfonos utilizan codificaciones diferentes. Y lo que parece natural en el lienzo, "¡Hola, mundo!", En el formulario, puede convertirse en krakozyabry (corregido en las últimas versiones). Además, debido a la doble interpretación (código de programa por el intérprete de Java y el propio intérprete a través de la máquina Java ), el código se ejecuta con relativa lentitud. Sin embargo, este lenguaje es bastante fácil de aprender y una buena introducción a los conceptos básicos de programación. A partir de la versión 1.8.4, Mumey comenzó a desarrollar el proyecto, como resultado de lo cual el programa adquirió una interfaz fácil de usar, varios comandos nuevos y la capacidad de crear aplicaciones Java completas que funcionan sin un shell de programador (esta característica estaba allí antes, para este propósito era necesario empaquetar un archivo bas (Autorun.bas) y recursos listos para usar en el archivo con el propio programador). La última versión actual fue la 1.8.6.2 de aNNiMON . El propio David Firth, en diciembre de 2010, lanzó una nueva versión, la 1.9, pero todos los cambios consistieron únicamente en agregar la función POWER para los números fraccionarios, por lo demás todo quedó como en la versión 1.8, por lo que los desarrolladores continúan usando modificaciones [1] . Si se lanzó la versión 1.9 junto con el código fuente, entonces la 1.91 se cierra nuevamente y tiene un precio de £ 4.99. Porque Los códigos fuente de la modificación de Mumey se perdieron, en 2013 el desarrollador bajo el apodo de kiriman los restauró con éxito con la ayuda de un descompilador y tipos oficiales. Por lo tanto, BASIC renació en la versión 1.9.1 de kiriman & dzanis (enlace inaccesible) . Se han solucionado numerosos errores en él, como el montaje en un MIDlet y la apertura de lis, archivos bas en teléfonos Nokia, y se han agregado 5 nuevos comandos, el más importante de los cuales es REPAINT. Se ha aumentado la velocidad de interpretación cambiando el formato bas (versiones anteriores de BASIC no lo soportan) y reescribiendo la obra con variables de tipo Float. Anteriormente, se emulaban los números de coma flotante; era demasiado lento. En cuanto al almacenamiento de códigos, MobileBASIC puede almacenar códigos fuente de programas en dos versiones: como un archivo de texto sin formato o como un código de bytes. En el primer caso, se acostumbra dar al archivo la extensión .lis (del comando LISTA BÁSICA), en el segundo, .bas.
La capacidad de descomprimir libremente un archivo jar y abrir cualquier módulo de programa usando MobileBASIC en sí mismo preocupa a los programadores. Después de todo, cualquiera puede mirar y cambiar el código, y sin mucho esfuerzo. A principios de 2010, apareció un ofuscador de archivos BAS. Su trabajo consistía en sobrescribir los nombres de las variables utilizadas en el programa. Este fue el impulso para estudiar la estructura del bytecode. Algún tiempo después, el ofuscador pasó a un nuevo nivel: ahora "estropea" el archivo de tal manera que no se puede abrir con las herramientas MobileBASIC, mientras que al mismo tiempo, el código ensamblado funciona absolutamente. Hasta la fecha, la estructura se ha revelado por completo y ya se está utilizando: se han creado un descompilador BAS=>LIS y un compilador LIS=>BAS, es posible otra aplicación: un intérprete que comprenda más funciones.
Versión | Cambios |
---|---|
1.8.0 | Interfaz de texto, sin posibilidad de trabajar con FS |
1.8.3 | Se agregó la capacidad de trabajar con FS , se agregó la capacidad de trabajar en modo de pantalla completa |
1.8.4, 1.8.5, 1.8.6 | Se agregó una interfaz fácil de usar, la capacidad de crear un MIDlet sin empaquetado manual |
1.8.6 para Millas | Trabajo fijo en teléfonos Sony Ericsson de quinta generación. |
1.8.6.1 | Trabajo fijo con formularios en teléfonos Sony Ericsson de quinta generación. |
1.8.6.2 | Trabajo fijo en teléfonos Sony Ericsson de quinta generación. |
1.9 | Versión oficial del 28 de diciembre de 2010. El código fuente está disponible. Cambios menores de 1.8. |
1.91 | Versión oficial del 6 de noviembre de 2011. Código fuente cerrado. Cambios menores. |
1.9.1 por kiriman y dzanis [2] | Errores corregidos.
Comandos agregados: REPINTAR; ALEATORIO(MIN%,MAX%); ALFAGEL GEL$,A%; GEL COLORALPHAGEL$,A%,R%,G%,B%; ENVIARMSMS(NÚMERO$,TEXTO$) |
1.9.1 por vlavolk&garfield63 [3] | Cambios de usuario de vlavolk:
1) Se agregaron nuevas funciones: sonido, información de sonido, conjunto de sonidos, dibujar polígono, relleno de polígono, disparo, gelzoom, gelrot, getcolor, pointpres, pointdrag, pointhold, pointx, pointy, lower, upper, indexof, vibr. 2) Se corrigieron errores con print y menuitem en tiempo de ejecución. 3) Se corrigieron errores con la obtención de discos en readdir$'e y con el análisis de cadena a flotante. 4) Ahora algunas funciones (readdir$, val, input) arrojan errores BÁSICOS. 5) ¡Ahora los geles se pueden descargar de Internet! 6) Se ha agregado un nuevo argumento a playtone: ¡volumen! 7) Se corrigió un error con rand.
1) Renombrado inferior y superior a inferior$ y superior$, porque devuelven variables de cadena. 2) Cambió el nombre de pointpres a pointpress, porque ¡No hay palabra pres en inglés! 3) Se corrigió un error con getcolor y se le agregó una abreviatura (gc). 4) Se ha cambiado el principio de funcionamiento de la toma: ahora no guarda toda la pantalla, sino solo una parte de la pantalla. |
1.9.1.1 por garfield63 [4] | 1) Se agregaron 3 funciones nuevas: inputtext, printtext y btsh$. Lea la información sobre ellos en la ayuda (en los archivos Files.txt y Bluetooth.txt en el archivo Help.zip).
2) Trabajo agregado con Bluetooth (todavía inestable, hay errores). 3) Se solucionó un error en el que, al dibujar un polígono lleno de color, se dibujaba una línea horizontal adicional, dividiéndolo por la mitad. |
1.9.1.2 por garfield63 [5] | 1) Se corrigió la función btsh$: ahora se puede usar BlueTooth sin errores.
2) Trabajo añadido con el acelerómetro. 3) Se agregaron las funciones IMEI$(0) y GELMIRROR(GEL$). 4) Se corrigieron errores en las funciones trigonométricas en los cálculos de grados (ahora si escribe "10 DEG : PRINT SIN(90) : REPAINT", se mostrará "1.0") 5) Se ha corregido el trabajo de la función FILLPOLYGON. 6) Teclado en pantalla agregado. Para habilitarlo, debe reemplazar "On-Screen-Keypad: no" con "On-Screen-Keypad: yes" en el manifiesto. 7.) Ayuda fija y actualizada. El archivo Help.zip contiene el programa Program1.pas, que en PascalABC recopila archivos de texto en un binario. |
La segunda herramienta de desarrollo para aplicaciones telefónicas es el entorno de desarrollo MobileBASIC. Pero el código escrito en él es muy diferente al de la versión móvil del lenguaje. Ahora se parece más a Quick Basic. Los números de línea se han convertido en etiquetas opcionales, el programa se divide fácilmente en módulos. El procedimiento principal es Main (Sub Main()). Pero sigue siendo un lenguaje interpretado, aunque más rápido en ejecución. Se agregó trabajo con mapas y mosaicos , para los cuales hay editores incorporados. En general, ambas variaciones del entorno de desarrollo están bien adaptadas específicamente para la creación de juegos, como lo demuestra la capacidad de trabajar con elementos gráficos (geles) y sprites .
El entorno de desarrollo incluye, además del editor de código con resaltado de sintaxis, varios editores más especializados: un editor de mosaicos (Editor de mosaicos), un editor de mapas (Editor de mapas), una herramienta de cambio de tamaño de imagen (Image Resize), un selector de color (Color Selector) y un emulador incorporado. El programa está escrito en Java SE , lo que le permite ejecutarse en cualquier sistema operativo que tenga una máquina virtual Java.
La última versión es la 2.3 del 8 de noviembre de 2011 [6] .
En junio de 2011, se lanzó la siguiente versión del entorno de desarrollo. Esta vez, para la plataforma Android. La sintaxis es muy similar a la de la versión para PC, con soporte para arreglos multidimensionales, rutinas y funciones definidas por el usuario. El programa incluye una práctica ayuda del idioma y más de 100 ejemplos del uso de varias características del idioma [7] . Hay dos versiones del entorno de desarrollo: gratuita (desventajas: mostrar anuncios [8] ) y completa, disponible a un precio de 2,99 £. La última versión es 4.9.11.
En 2012, MobileBASIC se expandió a otra plataforma, iOS. La nueva versión se llama MobileBASIC LITE. Incluye muchas características específicas de los dispositivos iOS, como posicionamiento, trabajo con el acelerómetro y el giroscopio, compatibilidad con mapas integrados, trabajo con bases de datos y mucho más [9] . Una referencia de lenguaje detallada con ejemplos está integrada en el entorno de desarrollo.
JsMobileBasic : biblioteca de JavaScript que implementa la mecánica MobileBASIC de la comunidad MobileBasicPRO. Utiliza HTML5 Canvas internamente, pero hay implementaciones de SDL2. Se lanzaron implementaciones posteriores de la biblioteca para C++ , Node.js y Python .
Actualizado: el 25 de enero de 2018, se abrieron las fuentes de JsMobileBasic [10] y ahora cualquiera puede verlas [11] . Otras fuentes de proyectos de la comunidad MobileBasicPRO se pueden encontrar en sus repositorios de GitHub [12]
BASIC | Dialectos del lenguaje de programación|
---|---|
Clásico |
|
transicional |
|
procesal |
|
Objeto |
|
Móvil |
|
Consola |
|
Lenguajes de programación | |
---|---|
|