Articulo de referencia

Microsoft Small Basic

"},"latest release version":{"wt":"v1.2"},"latest release date":{"wt":"{{Start date and age|2015|10|1}} "},"influenced by":{"wt":"[[Logo (programming language)|Logo]], [[QBasic]...

Microsoft Small Basic es un lenguaje de programación , intérprete y IDE asociado . Es una variante simplificada de BASIC , diseñada por Microsoft para ayudar a los estudiantes que han aprendido lenguajes de programación visual como Scratch a aprender programación basada en texto. [ 8 ] El IDE asociado proporciona un entorno de programación simplificado con funcionalidades como resaltado de sintaxis , autocompletado inteligente de código y acceso a la documentación en el editor. [ 9 ] El lenguaje tiene solo 14 palabras clave. [ 10 ]

Historia

Microsoft anunció Small Basic en octubre de 2008, [ 3 ] y lanzó la primera versión estable para su distribución el 12 de julio de 2011, [ 20 ] en un sitio web de Microsoft Developer Network (MSDN), junto con un plan de estudios de enseñanza [ 22 ] y una guía introductoria. [ 23 ] Entre el anuncio y el lanzamiento estable, se realizaron varios lanzamientos de Community Technology Preview (CTP).

El 27 de marzo de 2015, Microsoft lanzó Small Basic versión 1.1, [ 21 ] que corrigió un error y actualizó la versión de .NET Framework objetivo de la versión 3.5 a la versión 4.5, convirtiéndola en la primera versión incompatible con Windows XP .

Microsoft lanzó Small Basic versión 1.2 el 1 de octubre de 2015. [ 5 ] La versión 1.2 fue la primera actualización después de una pausa de cuatro años para introducir nuevas características a Small Basic. La actualización agregó clases para trabajar con los sensores de movimiento Kinect de Microsoft , [ 5 ] aumentó la cantidad de idiomas compatibles con el objeto Dictionary incluido y corrigió varios errores. [ 6 ]

El 19 de febrero de 2019, Microsoft anunció Small Basic Online (SBO). Es un software de código abierto publicado bajo la licencia MIT en GitHub . [ 24 ] [ 25 ]

Idioma

En Small Basic, el programa ilustrativo "¡Hola, mundo!" se escribe de la siguiente manera:

TextWindow.WriteLine ( " ¡ Hola, mundo! " )

Microsoft Small Basic es Turing completo . Admite bifurcaciones condicionales , estructuras de bucle y subrutinas para el manejo de eventos . Las variables son de tipo débil y dinámicas , sin reglas de ámbito.

Ramificación condicional

El siguiente ejemplo muestra la ramificación condicional. Le pide al usuario que indique si la temperatura es en grados Celsius o Fahrenheit y luego comenta la respuesta en la unidad de temperatura correspondiente.

'Un programa que ofrece asesoramiento a la temperatura solicitada.TextWindow.WriteLine ( "¿Utilizas 'Celsius' o 'Fahrenheit' para la temperatura ? " )TextWindow.WriteLine ( " Ingrese C para Celsius y F para Fahrenheit: " )question_temp : ' Etiqueta para volver al campo de entrada si se introdujo una entrada incorrectaunidad temporal = Ventana de texto . Leer ()Definiciones de temperatura en grados Celsius:tempArray [ "caliente" ] = 30 ' 30 °C equivalen a 86 °FtempArray [ "pretty" ] = 20 ' 20 °C equivalen a 68 °FtempArray [ "frío" ] = 15 ' 15 °C equivale a 59 °FSi tempunit = "C" O tempunit = "c" EntoncesTextWindow.WriteLine ( " ¡ Celsius seleccionado! " )tempunit = "C" ' Podría estar en minúscula, por lo tanto, cámbielo a mayúsculaDe lo contrario, si tempunit = "F" O tempunit = "f" EntoncesTextWindow.WriteLine ( "¡ Se seleccionó Fahrenheit! " )Calculamos los valores de temperatura en grados Fahrenheit basándonos en los valores en grados Celsius.tempArray [ "hot" ] = (( tempArray [ "hot" ] * 9 ) / 5 ) + 32tempArray [ "pretty" ] = (( tempArray [ "pretty" ] * 9 ) / 5 ) + 32tempArray [ "frío" ] = (( tempArray [ "frío" ] * 9 ) / 5 ) + 32tempunit = "F" ' Podría estar en minúscula, por lo tanto, cámbielo a mayúsculaDemásGOTO question_temp ' Entrada incorrecta, vuelva a la etiqueta "question_temp"FinSiTextWindow.Write ( " Ingrese la temperatura de hoy (en " + tempunit + "): " )temp = Ventana de texto . LeerNúmero ()Si temp >= tempArray [ "hot" ] EntoncesTextWindow.WriteLine ( " Hace bastante calor. " )ElseIf temp >= tempArray [ "pretty" ] ThenTextWindow.WriteLine ( " Es bastante agradable. " )ElseIf temp >= tempArray [ "frío" ] EntoncesTextWindow.WriteLine ( "No olvides tu abrigo . " )DemásTextWindow.WriteLine ( " Quédate en casa. " )FinSi

Small Basic no admite una Ifinstrucción en línea como lo hace Visual Basic , por ejemplo:

Si temp > 50 Entonces TextWindow . WriteLine ( "Es bastante agradable." )

Bucle

Este ejemplo muestra un bucle. Comenzando desde el uno y terminando con el diez, multiplica cada número por cuatro y muestra el resultado de la multiplicación.

TextWindow.WriteLine ( " Tablas de multiplicar " ) Para i = 1 a 10 TextWindow.Write ( i * 4 ) FinPara

WhileTambién se admiten bucles , y el Forbucle demostrado puede ampliarse mediante el uso de la Steppalabra clave. Esta Steppalabra clave se utiliza para establecer el valor con el que ise incrementa la variable contador en cada iteración.

Tipos de datos

Small Basic admite tipos de datos básicos , como cadenas , enteros y decimales , y convierte fácilmente un tipo a otro según sea necesario. En el ejemplo, ambos Readmétodos ReadNumberleen una cadena desde la línea de comandos, pero ReadNumberrechazan cualquier carácter no numérico. Esto permite que la cadena se convierta a un tipo numérico y sea tratada como un número en lugar de una cadena por el +operador.

TextWindow.WriteLine ( "Ingrese su nombre : " )nombre = TextWindow.Leer ( )TextWindow.Write ( " Ingrese su edad: " )edad = TextWindow.ReadNumber ( )TextWindow.WriteLine ( "Hola, " + nombre + " ! " )TextWindow.WriteLine ( " ¡ Dentro de 5 años tendrás " + ( edad + 5 ) + " años!" )

Dado que Small Basic permite la conversión entre tipos de datos, los números se pueden manipular como cadenas de texto y las cadenas numéricas como números. Esto se demuestra en el segundo ejemplo.

Ventana de texto . WriteLine ( Math . log ( "100" )) 'Imprime 2Ventana de texto . WriteLine ( "100" + "3000" ) ' Imprime 3100Ventana de texto . WriteLine ( "Windows" + 8 ) 'Imprime Windows 8TextWindow.WriteLine ( Text.GetLength ( 1023.42 ) ) ' Imprime 7 (longitud de la representación decimal incluyendo el punto decimal )

En el segundo ejemplo, ambas cadenas se tratan como números y se suman, produciendo el resultado 3100. Para concatenar los dos valores, produciendo el resultado 1003000, es necesario utilizar el método.Text.Append(text1, text2)

Bibliotecas

Biblioteca estándar

La biblioteca estándar de Small Basic incluye clases básicas para matemáticas, manejo de cadenas y entrada/salida , así como clases más avanzadas diseñadas para que el aprendizaje del lenguaje sea más ameno. Algunos ejemplos son una clase de gráficos Turtle , una clase para recuperar fotos de Flickr y clases para interactuar con los sensores Microsoft Kinect. [ 26 ]

Para facilitar el uso de las clases a los estudiantes, se han simplificado. Esta simplificación se demuestra mediante el código utilizado para obtener una imagen aleatoria con temática de montaña de Flickr:

Para i = 1 a 10 pic = Flickr.GetRandomPicture ( " mountains " ) Desktop.SetWallPaper ( pic ) Program.Delay ( 10000 ) EndFor

Gráficos de tortuga

Small Basic incluye una biblioteca gráfica llamada "Turtle" que toma prestadas características de la familia de lenguajes de programación Logo . Por ejemplo, para dibujar un cuadrado con la tortuga, esta se mueve hacia adelante un número determinado de píxeles y se rota 90 grados en una dirección específica. Esta acción se repite cuatro veces para dibujar los cuatro lados del cuadrado.

Para i = 1 a 4 Turtle.Move ( 100 ) ' Avanzar 100 píxeles Turtle.Turn ( 90 ) ' Girar 90 grados a la derecha EndFor

Es posible crear dibujos más complejos modificando el ángulo de giro de la tortuga y el número de iteraciones del bucle. Por ejemplo, se puede dibujar un hexágono ajustando el ángulo de giro a 60 grados y el número de iteraciones a seis.

Bibliotecas de terceros

Small Basic permite el uso de bibliotecas de terceros. Estas bibliotecas deben estar escritas en un lenguaje compatible con CLR , y los binarios compilados deben estar dirigidos a una versión compatible de .NET Framework. Las clases proporcionadas por la biblioteca deben ser estáticas , estar marcadas con un atributo específico y usar un tipo de datos específico.

A continuación se proporciona un ejemplo de una clase que se utilizará en Small Basic, escrita en C# .

[SmallBasicType] public static class ExampleClass { public static Primitive Add ( Primitive A , Primitive B ) => A + B ;public static Primitive SomeProperty { obtener ; establecer ; }public static Primitive Pi => ( Primitive ) 3.14159 ; }

Si está disponible, el entorno de desarrollo Small Basic mostrará la documentación de las bibliotecas de terceros. El entorno de desarrollo acepta documentación en formato XML , que puede generarse automáticamente a partir de los comentarios del código fuente mediante herramientas como Microsoft Visual Studio y MonoDevelop . [ 27 ]

Referencias

  1. Conrod, Philip; Tylee, Lou (febrero de 2013). Programación de juegos con Microsoft Small Basic . Kidware Software, LLC. ISBN 978-1-937161-56-9.
  2. "Artículo destacado: Entrevistas con Vijaye Raji, el creador de Small Basic" . TECHCOMMUNITY.MICROSOFT.COM . 13 de febrero de 2019.
  3. 1 2 3 Raji, Vijaye (23 de octubre de 2008). "Hola mundo" . Small Basic . Blogs de MSDN. Microsoft . Recuperado el 9 de febrero de 2014 .
  4. 1 2 Raji, Vijaye (23 de octubre de 2009). "Feliz cumpleaños Small Basic" . Small Basic . Blogs de MSDN. Microsoft . Recuperado el 27 de septiembre de 2015 .
  5. 1 2 3 4 5 Scherotter, Michael (1 de octubre de 2015). "Small Basic 1.2 lanzado con soporte para Kinect y correcciones de errores" . Small Basic . Blogs de MSDN. Microsoft . Recuperado el 2 de octubre de 2015 .
  6. 1 2 "Descargar Microsoft Small Basic 1.2 desde el Centro de descargas oficial de Microsoft" . Small Basic . Microsoft. 1 de octubre de 2015. Consultado el 2 de octubre de 2015 .
  7. "SmallBasic" . GitHub . 17 de octubre de 2021.
  8. "Small Basic" . Consultado el 6 de septiembre de 2020 .
  9. Price, Ed (22 de octubre de 2012). "Las características únicas de Small Basic" . Small Basic . TechNet. Microsoft. Archivado del original el 28 de abril de 2015. Recuperado el 22 de abril de 2015 .
  10. Price, Ed (8 de octubre de 2012). "¿Cuáles son las 14 palabras clave de Small Basic?" . Small Basic . Blogs de MSDN. Microsoft . Consultado el 9 de febrero de 2014 .
  11. Raji, Vijaye (17 de diciembre de 2008). "¡Anunciamos Small Basic v0_2!" . Small Basic . Blogs de MSDN. Microsoft . Consultado el 27 de septiembre de 2015 .
  12. Raji, Vijaye (10 de febrero de 2009). "Microsoft Small Basic v0.3 ya está aquí" . Small Basic . Blogs de MSDN. Microsoft . Consultado el 27 de septiembre de 2015 .
  13. ^ Raji, Vijaye (14 de abril de 2009). "v0.4 de Small Basic dice "Bonjour"" . Small Basic . Blogs de MSDN. Microsoft . Consultado el 27 de septiembre de 2015 .
  14. Raji, Vijaye (16 de junio de 2009). "¡Lo más nuevo, lo más ligero y lo más potente ya está aquí!" . Small Basic . Blogs de MSDN. Microsoft . Consultado el 27 de septiembre de 2015 .
  15. Raji, Vijaye (19 de agosto de 2009). "Ya disponible: Small Basic v0.6" . Small Basic . Blogs de MSDN. Microsoft . Consultado el 27 de septiembre de 2015 .
  16. Raji, Vijaye (10 de febrero de 2010). "Small Basic v0.8" . Small Basic . Blogs de MSDN. Microsoft . Consultado el 27 de septiembre de 2015 .
  17. Raji, Vijaye (11 de junio de 2010). "¡Small Basic V0.9 ya está aquí!" . Small Basic . Blogs de MSDN. Microsoft . Consultado el 27 de septiembre de 2015 .
  18. Aldana, Sandra (17 de noviembre de 2010). "¡Small Basic V0.91 es más internacional que nunca!" . Small Basic . Blogs de MSDN. Microsoft . Consultado el 27 de septiembre de 2015 .
  19. Aldana, Sandra (8 de febrero de 2011). "¡Small Basic v0.95 habla otro idioma!" . Small Basic . Blogs de MSDN. Microsoft . Consultado el 27 de septiembre de 2015 .
  20. 1 2 Aldana, Sandra (12 de julio de 2011). "¡Small Basic 1.0 ya está aquí!" . Small Basic . Blogs de MSDN. Microsoft . Consultado el 27 de septiembre de 2015 .
  21. 1 2 Price, Ed (27 de marzo de 2015). "¡Small Basic 1.1 ya está aquí!" . Small Basic . Blogs de MSDN. Microsoft . Consultado el 27 de septiembre de 2015 .
  22. Price, Ed (29 de abril de 2014). "Small Basic Curriculum" . TechNet . Microsoft . Recuperado el 9 de febrero de 2014 .
  23. Price, Ed; Takahashi, Nonki (25 de febrero de 2014). "Guía básica de inicio rápido" . TechNet . Microsoft . Consultado el 12 de febrero de 2015 .
  24. "Anuncio de Small Basic Online 1.0 – Vista previa pública" . 20 de febrero de 2019.
  25. "TechNet Wiki" . 17 de enero de 2024.
  26. "Requisitos del sistema Kinect para Small Basic" . ininet.org .
  27. Protalinski, Emil (17 de noviembre de 2008). "Otro lenguaje de programación más de Microsoft: Small Basic" . Ars Technica .

Lecturas adicionales

  • Marji, Majed; Price, Ed (2016). Aprende a programar con Small Basic: Una introducción a la programación con juegos, arte, ciencia y matemáticas . No Starch Press . ISBN 978-1593277024.
  • Carlson, Edward H; Philip Conrod, Philip; Tylee Conrod, Lou (2013). Small Basic For Kids: Un tutorial de programación informática . Kidware Software. ISBN 978-1937161828.
  • Conversación sobre los fundamentos de Small Basic con Vijaye Raji y Erik Meijer en SmallBasic.
  • Introducción a Small Basic. Archivado el 11 de julio de 2010 en la Wayback Machine. Discusión con Vijaye Raji y Robert Hess sobre SmallBasic.
  • Microsoft Small Basic para .NET Archivado el 13/04/2016 en Wayback Machine. Reseña de Microsoft Small Basic, con una aplicación de ejemplo.
  • Categoría: Tareas básicas pequeñas de Microsoft implementadas en Microsoft Small Basic en rosettacode.org
  • Sitio web oficial
  • Microsoft Small Basic en GitHub