MóvilBÁSICO

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 29 de septiembre de 2017; las comprobaciones requieren 17 ediciones .
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
  • Edición de teléfono: 1.9.1 por kiriman & dzanis (último oficial - 1.92);
  • Edición de escritorio: 2.3;
  • Edición Android: 3.1
  • LITE para iOS: 1.2
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:

MobileBASIC Phone Edition

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 FIN

Desde 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.

Estructura de archivos BAS y ofuscación de código

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.

Historial de versiones

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.


Cambios realizados por el usuario garfild63:

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] .

MobileBASIC para Android

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.

MobileBASIC LITE para iOS

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

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]

Notas

  1. Página de inicio de MobileBASIC 1.91 (enlace descendente) . Consultado el 29 de septiembre de 2011. Archivado desde el original el 27 de septiembre de 2011. 
  2. Mobile Basic 1.9.1 por kiriman & dzanis | animon.com . animon.com. Consultado el 11 de abril de 2020. Archivado desde el original el 15 de enero de 2022.
  3. MobileBasic 1.9.1 por vlavolk&garfild63 | animon.com . animon.com. Fecha de acceso: 11 de abril de 2020.
  4. MobileBASIC 1.9.1.1 por garfild63 | Waper _ waper.ru. Recuperado: 11 de abril de 2020.  (enlace no disponible)
  5. MobileBASIC 1.9.1.2 por garfild63 | Waper _ waper.ru. Recuperado: 11 de abril de 2020.  (enlace no disponible)
  6. Página de inicio de MobileBASIC Desktop Edition (enlace descendente) . Consultado el 29 de septiembre de 2011. Archivado desde el original el 27 de septiembre de 2011. 
  7. Página de inicio de MobileBASIC para Android (enlace descendente) . Consultado el 29 de septiembre de 2011. Archivado desde el original el 27 de septiembre de 2011. 
  8. MobileBASIC para Android 3.1 en Android Market . Consultado el 11 de diciembre de 2011. Archivado desde el original el 16 de agosto de 2011.
  9. MobileBASIC LITE en iTunes . Consultado el 29 de septiembre de 2017. Archivado desde el original el 28 de marzo de 2017.
  10. ¡JsMobileBasic (JsMB) código abierto! | Vkontakte . m.vk.com. Fecha de acceso: 10 de abril de 2020.
  11. JsMB | El repositorio principal de JsMobileBasic | Github . — 2018-03-13. Archivado el 27 de noviembre de 2020.
  12. MobileBasicPRO | Github  (inglés) . GitHub. Fecha de acceso: 10 de abril de 2020.

Véase también

Enlaces