Lenguaje de programación informática
Squirrel es un lenguaje de programación orientado a objetos e imperativo de alto nivel , diseñado para ser un lenguaje de scripting liviano que se adapta al tamaño, ancho de banda de memoria y requisitos de tiempo real de aplicaciones como los videojuegos .
MirthKit, un sencillo kit de herramientas para crear y distribuir juegos 2D multiplataforma de código abierto, utiliza Squirrel para su plataforma. [2] Code::Blocks lo utiliza ampliamente para crear scripts y también se utilizó en Final Fantasy Crystal Chronicles: My Life as a King . [3] [4] También se utiliza en Left 4 Dead 2 , Portal 2 y Thimbleweed Park para eventos con scripts y en NewDark , una actualización no oficial del motor Thief 2: The Metal Age , para facilitar medios adicionales y simplificados de crear scripts de eventos de misiones, además de los scripts C habituales . [5]
Características del lenguaje
Sintaxis
Squirrel utiliza una sintaxis similar a C.
- Factorial en Squirrel
función factorial ( x ) { si ( x <= 1 ) { devuelve 1 ; } de lo contrario { devuelve x * factorial ( x - 1 ); } }
- Generadores
función no_un_generador_de_números_aleatorios ( max ) { local last = 42 ; local IM = 139968 ; local IA = 3877 ; local IC = 29573 ; for (;;) { // bucles para siempre yield ( max * ( last = ( last * IA + IC ) % IM ) / IM ); } } randtor local = no_un_generador_de_números_aleatorios ( 100 ); para ( local i = 0 ; i < 10 ; i += 1 ) imprimir ( ">" + reanudar randtor + "\n" );
- Clases y herencia
clase BaseVector { constructor (...) { si ( vargv.len () > = 3 ) { x = vargv [ 0 ]; y = vargv [ 1 ]; z = vargv [ 2 ] ; } } x = 0 ; y = 0 ; z = 0 ; } clase Vector3 extiende BaseVector { función _add ( other ) { if ( other instanceof :: Vector3 ) return :: Vector3 ( x + other . x , y + other . y , z + other . z ); de lo contrario, arroja "parámetro incorrecto" ; } función Print () { :: print ( x + "," + y + "," + z + "\n" ); } } local v0 = Vector3 ( 1 , 2 , 3 ) local v1 = Vector3 ( 11 , 12 , 13 ) local v2 = v0 + v1 ; v2 . Imprimir ();
Aplicaciones
Aplicaciones que utilizan Squirrel
- Code::Blocks , entorno de desarrollo integrado
- Enduro/X , servidor de aplicaciones en clúster
- Electric Imp, una plataforma IoT de extremo a extremo [6]
Juegos que utilizan Squirrel
Historia
El lenguaje se hizo público en 2003 bajo la licencia zlib/libpng . [22]
En noviembre de 2010, la licencia se cambió a la licencia MIT para permitir que el proyecto se alojara en Google Code . [23] [24]
Es desarrollado y mantenido por Alberto Demichelis.
Véase también
Referencias
- ^ "ardilla/HISTORIA en master - albertodemichelis/ardilla - GitHub".
- ^ Wiki para desarrolladores de MirthKit Archivado el 11 de febrero de 2014 en Wayback Machine
- ^ por Brandon Boyer (21 de febrero de 2008). "Gamasutra - Cobertura del evento GDC 2008". gamasutra.com . Gamasutra .
- ^ "Exclusivo: Entre bastidores del debut de Final Fantasy en WiiWare". gamasutra.com . Gamasutra . 23 de junio de 2008 . Consultado el 22 de septiembre de 2011 .
- ^ "L4D2 Vscripts - Comunidad de desarrolladores de Valve". developer.valvesoftware.com . Consultado el 6 de julio de 2018 .
- ^ "Guía de programación de Electric Imp". electricimp.com .
- ^ abcdefgh "VScript". valvesoftware.com . 20 de agosto de 2014 . Consultado el 17 de enero de 2015 .
- ^ "th155-decomp". GitHub . Consultado el 19 de octubre de 2020 .
- ^ "¿Qué demonios? ¿Es una nuez consumible? Por favor, ayuda. Me ha salido un código de error. ¿A alguno de vosotros le ha pasado esto antes?". reddit.com . 2019-03-24 . Consultado el 2021-09-04 .
- ^ "iv-multiplayer.com". www.iv-multiplayer.com . Archivado desde el original el 7 de junio de 2012. Consultado el 6 de julio de 2018 .
- ^ "Liberty Unleashed" (Libertad desatada) . Consultado el 4 de diciembre de 2019 .
- ^ "m2-multiplayer.com". www.m2-multiplayer.com . Archivado desde el original el 2013-01-02 . Consultado el 2018-07-06 .
- ^ "undernightinbirth". GitHub . Consultado el 18 de agosto de 2024 .
- ^ "AI:Página principal - OpenTTD". wiki.openttd.org . Consultado el 6 de julio de 2018 .
- ^ "Simutrans-Squirrel-API: Página principal". dwachs.github.io . Consultado el 6 de julio de 2018 .
- ^ "Wiki de recursos de VG". wiki.vg-resource.com . Consultado el 4 de septiembre de 2021 .
- ^ "Blog de Thimbleweed Park: motor". blog.thimbleweedpark.com . Consultado el 6 de julio de 2018 .
- ^ "NewDark 1.25: ¿Script de Squirrel?". ttlg.com . 2017-03-20 . Consultado el 2019-12-25 .
- ^ Vice City Multijugador
- ^ "¡Bienvenido al sitio web de VC-MP!". Archivado desde el original el 5 de abril de 2006. Consultado el 4 de mayo de 2014 .
- ^ "undernightinbirth". GitHub . Consultado el 18 de agosto de 2024 .
- ^ "El lenguaje de programación Squirrel". SourceForge . Consultado el 6 de julio de 2018 .
- ^ "Pasando a code.google.com y la licencia MIT - El lenguaje - Squirrel - El lenguaje de programación". forum.squirrel-lang.org . Consultado el 6 de julio de 2018 .
- ^ "Archivo de código de Google: almacenamiento a largo plazo para el alojamiento de proyectos de código de Google". code.google.com . Consultado el 6 de julio de 2018 .
Enlaces externos