Rascar | |
---|---|
Semántica | evento conducido |
clase de idioma | gráfico , educativo |
tipo de ejecución | Interprete |
Apareció en | 2007 |
Autor | Mitchell Resnick _ _ _ |
Desarrollador | Laboratorio de medios del MIT |
extensión de archivo | .sb , .sb2 , .sb3 |
Liberar | 3.29.1 (27 febrero 2022 ) |
sistema de tipos | dinámica |
Implementaciones principales | Rascar |
Dialectos | ¡Siesta! |
sido influenciado | Logotipo , Smalltalk , HyperCard, StarLogo , AgentSheets, Etoys, Tweak |
influenciado | ¡Siesta! , AppInventor , Catrobat |
Licencia | licencia BSD modificada [d] |
Sitio web | scratch.mit.edu |
sistema operativo | Windows , mac OS , HTML |
Archivos multimedia en Wikimedia Commons |
Scratch ( en inglés Scratch , IPA [ s k r æ ʧ ]) es un entorno de programación basado en eventos de bloques visuales creado para niños y adolescentes. El nombre proviene de la palabra scratching , una técnica utilizada por los DJ de hip-hop que hacen girar los discos de vinilo con las manos para mezclar temas musicales [1] .
Fue creado como una continuación de las ideas del lenguaje Logo y el constructor Lego . Scratch 1.4 fue escrito en el lenguaje Squeak , 2.0 y 3.0 están enfocados al trabajo en línea. Scratch 2.0 ha sido reescrito en Flash y ActionScript . Scratch 3.0 (versión actual) es una versión mejorada de Scratch 2.0 y está hecho en HTML5 utilizando el motor WebGL , lo que le permite ejecutarse en dispositivos móviles y tabletas . Scratch está siendo desarrollado por un pequeño equipo de programadores para niños [2] en el Instituto de Tecnología de Massachusetts . La versión actual es Scratch 3.0, lanzada en enero de 2019. En 2008, Scratch fue portado al módulo de microcontrolador Arduino . El proyecto se llama S4A [3] .
Los programas en Scratch consisten en bloques gráficos, cuyos títulos dependen del idioma elegido para la interfaz. Se puede seleccionar uno de los 50 idiomas de la interfaz, incluido el ruso . Para conectar la interfaz en un nuevo idioma, se utilizan archivos gettext estándar .
Los principales componentes de un programa scratch son los objetos sprite . Un sprite consta de una representación gráfica: un conjunto de marcos- disfraces ( eng. costume ) y un guión- guión . Para editar los disfraces de los sprites, un editor de gráficos ( English Paint Editor ) está integrado en cero . La acción del programa Scratch tiene lugar en un escenario ( escenario inglés ) de 480 × 360 (condicional) píxeles de tamaño con el centro de coordenadas en el centro de la escena.
Para programar guiones en Scratch, se utiliza un enfoque de arrastrar y soltar : los bloques de la paleta de bloques se arrastran al área de guiones.
Por propósito funcional, los bloques se dividen en 10 grupos, la pertenencia del bloque a un grupo en particular se indica por su color.
Grupo | titulo en ingles | Color | Nota |
---|---|---|---|
Tráfico | Movimiento | Azul | controlar el movimiento del sprite (no se aplica en el fondo) |
Apariencia | aspecto | Violeta | controlar la apariencia del sprite |
Sonido | Sonidos | rosado | controlar el sonido del sprite |
Desarrollos | Eventos | amarillo | comprobando eventos, enviando señales a todos los sprites |
Control | control | ámbar | estructuras de control, encabezados de controladores de eventos |
Sensores | sintiendo | azul | dispositivos de entrada de sondeo, temporizador y nombre del participante |
Operadores [4] | Operadores | verde claro | operaciones aritmético-lógicas |
Variables | Variables | rojo y naranja | sección para manipular variables y listas |
Otros bloques | Mis bloques | Rosa claro | convertir una combinación de bloques en un bloque, lo que simplifica el código,
o simplifica la creación de su bloque personal |
Agregar
Extensiones |
Extensiones | verde | ampliar las posibilidades de Scratch. Hay diferentes tipos de extensiones, como música, lápiz, reconocimiento de video, texto a voz , traductor , Makey Makey , micro: bit , LEGO MINDSTORMS EV3 y LEGO Education WeDo 2.0. |
Muchos bloques tienen un campo blanco editable para los parámetros ingresados por el programador temporal.
Hay tres tipos de bloques: bloques de pila , bloques de encabezado y bloques de enlace .
Los bloques de pila (la mayoría de los bloques) ( ing. Stack Blocks ) tienen una muesca en la parte superior y una repisa en la parte inferior, con su ayuda se combinan en un grupo de bloques llamado pila . Las pilas se pueden copiar y mover como un solo bloque. Un tipo especial de bloques de pila son las construcciones de control, como los bucles : tienen forma de C y pueden abarcar una pila anidada de bloques de scratch.
Los bloques de encabezado ( también llamados sombreros) tienen un borde superior convexo y una repisa para unir en la parte inferior; forman los encabezados de las pilas de borrador. Los bloques de encabezado incluyen bloques "cuando..." del grupo " Control ", que permiten organizar los controladores de mensajes: externos, desde el teclado y el mouse, e internos, transmitidos entre sprites y que permiten la programación orientada a objetos en estilo smalltalk .
Los bloques de enlaces ( ing. Reporteros ) están destinados a completar los campos internos de otros bloques.
El lenguaje Scratch (como Logo ) opera con números, cadenas de texto, booleanos y listas que juegan el papel de arreglos dinámicos.
Aunque la arquitectura de los programas scratch en forma de un conjunto de sprites de Scratch que intercambian eventos entre sí se asemeja a una arquitectura orientada a objetos , Scratch no es un lenguaje orientado a objetos: (de ninguna forma) tiene mecanismos de herencia (en las últimas versiones del dialecto de scratch BYOB extendido, herencia prototipo ).
Después del lanzamiento de la versión 0.18.1, el código fuente de Scratch se abrió bajo los términos de la Licencia de código fuente de Scratch, que es una licencia copyleft simple con restricciones adicionales para no usar marcas comerciales originales (en una forma más leve, se incluyen dichas restricciones, por ejemplo, en Licencia PHP ).
El código se puede descargar desde el sitio oficial [5] . Las condiciones para su uso y distribución son las siguientes:
*(leer notas)
El código fuente distribuido ya cumple estas condiciones: el logotipo y el sprite con el gato se han reemplazado en él, y se ha eliminado el código para guardar el proyecto Scratch en el sitio.
Sin embargo, dado que Scratch (1.4) está escrito en Squeak , el acceso a su código fuente existe sin proporcionarlo explícitamente al usuario: se almacenan junto con el resultado de su compilación en el archivo de imagen del sistema Smalltalk.
El 13 de mayo de 2014, se publicó el código fuente de Scratch 2.0 bajo la licencia GPLv2 [6] .
Basado en el código fuente de Scratch 1.4, se han creado una serie de modificaciones de lenguaje [7] , tales como:
Desarrollado en la Universidad de Berkeley . La principal extensión del lenguaje que se introdujo en BYOB fue la capacidad de crear bloques personalizados compuestos, un análogo de los procedimientos de los lenguajes de programación convencionales . Se admiten recursividad , cierres y expresiones lambda . También se agregó un depurador y la capacidad de compilar ejecutables, sprites anidados, listas multidimensionales, desplazamiento mejorado y compilación de ejecutables. A partir de la versión 3.1, BYOB agregó soporte para OOP : los sprites BYOB ahora permiten la herencia basada en prototipos . Para ello, el lenguaje, en particular, introdujo un mecanismo de clonación de sprites.
Panther: amplía Scratch con soporte para la gestión de sprites de arrastrar y soltar , la capacidad de clonar sprites (objetos) y el subsistema CYOB (que, como BYOB, le permite crear sus propios bloques de comandos, pero requiere conocimiento del lenguaje Squeak para esto (un dialecto moderno de Smalltalk , en el que está escrito por Scratch y sus modificaciones).
Tanto BYOB como Panther incluyen soporte para el mecanismo de malla [14] , que permite que los programas temporales interactúen a través de la red utilizando variables compartidas y enviando mensajes de difusión.
Slash amplía las capacidades de BYOB 3.0 con las nuevas capacidades de Panther: clonación y arrastre de sprites (objetos).
En 2008, el Instituto de Tecnología de Massachusetts también desarrolló el lenguaje de programación educativo StarLogo TNG [15] , que amplía las capacidades del sistema StarLogo con capacidades de gráficos 3D y un lenguaje de programación de bloques visuales similar a un rasguño. A diferencia del OpenStarLogo original [16] y MIT Scratch, StarLogo TNG no es actualmente un producto de software de código abierto.
En febrero de 2011, se lanzó la primera versión beta en línea de Scratch 2.0 [17] , que está previsto que incluya algunas de las características de BYOB (como la creación de procedimientos personalizados), gráficos vectoriales, clonación de sprites, la posibilidad de trabajar en grupo en proyectos , etc. La versión beta se lanzó oficialmente el 9 de mayo de 2013.
Scratch 3.0 es la tercera y actual versión principal de Scratch. Esta es una reelaboración y reimplementación completa de Scratch escrita en HTML5 y JavaScript . Tiene un nuevo aspecto y diseño moderno. Es compatible con muchos dispositivos móviles y no requiere Flash. Publicado el 2 de enero de 2019.
App Inventor , un sistema de programación visual experimental para la plataforma Android , se ha convertido en otro entorno de programación que utiliza el apilamiento de lógica visual estilo mosaico .
Un análogo más directo del lenguaje Scratch en Android es el lenguaje Catroid, que se está desarrollando en el Instituto de Tecnología de Software de la Universidad Tecnológica de Graz en Austria [18] .
![]() | |
---|---|
sitios temáticos | |
En catálogos bibliográficos |
Lenguajes de programación | |
---|---|
|