Ardilla es un alto nivel imperativo , orientado a objetos lenguaje de programación , diseñado para ser un ligero lenguaje de script que cabe en el tamaño, el ancho de banda de memoria, y los requisitos en tiempo real de aplicaciones como juegos de video y sistemas embebidos .
Paradigma | Multi-paradigma : scripting , imperativo , funcional , orientado a objetos |
---|---|
Diseñada por | Alberto Demichelis |
Apareció por primera vez | 6 de septiembre de 2003 |
Lanzamiento estable | 3.1 / 27 de marzo de 2016 |
Disciplina de mecanografía | Dinámica |
SO | Multiplataforma |
Licencia | Licencia MIT |
Extensiones de nombre de archivo | .nuez |
Sitio web | ardilla-lang |
Influenciado por | |
C ++ , JavaScript , Lua , Python | |
Influenciado | |
MiniD |
MirthKit, un sencillo conjunto de herramientas para crear y distribuir juegos 2D multiplataforma de código abierto, utiliza Squirrel para su plataforma. [1] Code :: Blocks lo usa ampliamente para la creación de scripts y también se usó en Final Fantasy Crystal Chronicles: My Life as a King . [2] [3] También se usa en Left 4 Dead 2 , Portal 2 y Thimbleweed Park para eventos con guión y en NewDark , una actualización no oficial del motor de Thief 2: The Metal Age , para facilitar medios adicionales y simplificados para programar eventos de misiones. aparte de las secuencias de comandos C habituales . [4]
Características del idioma
- Escritura dinámica
- Delegación
- Clases , herencia
- Funciones de orden superior
- Generadores
- Hilos cooperativos ( corrutinas )
- Recursión de cola
- Manejo de excepciones
- Gestión automática de la memoria (principalmente el recuento de referencias con el recolector de basura de respaldo )
- Referencias débiles
- Tanto el compilador como la máquina virtual encajan en aproximadamente 7k líneas de código C ++
- Cadenas de caracteres de 16 bits opcionales
Sintaxis
Squirrel usa una sintaxis similar a la de C.
- Factorial en Ardilla
function factorial ( x ) { if ( x == 0 ) { return 1 ; } else { return x * factorial ( x - 1 ); } }
- Generadores
función not_a_random_number_generator ( max ) { local último = 42 ; IM local = 139968 ; IA local = 3877 ; IC local = 29573 ; for (;;) { // bucles para siempre yield ( max * ( last = ( last * IA + IC ) % IM ) / IM ); } } randtor local = not_a_random_number_generator ( 100 ); para ( i local = 0 ; i < 10 ; i + = 1 ) print ( ">" + resume randtor + "\ n" );
- Clases y herencia
class BaseVector { constructor (...) { if ( vargv . len () > = 3 ) { x = vargv [ 0 ]; y = vargv [ 1 ]; z = vargv [ 2 ]; } } x = 0 ; y = 0 ; z = 0 ; } class Vector3 extiende BaseVector { función _add ( otro ) { if ( otra instancia de :: Vector3 ) return :: Vector3 ( x + otro . x , y + otro . y , z + otro . z ); si no lanza "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
- Enduro / X , servidor de aplicaciones en clúster
- Electric Imp , una plataforma de IoT de un extremo a otro [5]
Juegos con ardilla
- Left 4 Dead 2 [6]
- Thief II (actualización no oficial del motor NewDark) [7]
- Portal 2 [6]
- Enjambre alienígena [6]
- OpenTTD [8]
- GTA IV ' s IV-MP [9]
- Mafia II ' s M2-multijugador [10]
- Counter Strike: Global Offensive [6]
- Guerrero de las sombras
- Trueno de guerra
- Cocina Royale
- SuperTux
- Hermanos de batalla
- Sonic Unleashed (PS2 / Wii)
- Contagio [6] (PC)
- Parque Thimbleweed [11]
- Simutrans [12]
- Vice City Multiplayer , [13] un mod para Grand Theft Auto: Vice City [14]
- Libertad desatada [15]
- Zero no Tsukaima - Muma ga Tsumugu Yokaze no Nocturne (PS2)
- Zero no Tsukaima - Maigo no Period a Ikusen no Symphony (PS2)
- Zero no Tsukaima - Shou-akuma a Harukaze no Concerto (PS2)
- Antinomia de flores comunes [16]
Historia
El idioma se hizo público en 2003 bajo la licencia zlib / libpng . [17] En noviembre de 2010, la licencia se cambió a la licencia MIT para permitir que el proyecto se alojara en Google Code . [18] [19] Es desarrollado y mantenido por Alberto Demichelis.
Ver también
- Lua
- AngelScript
- Pitón
- ECMAScript
- Rubí
Referencias
- ^ Wiki para desarrolladores de MirthKit Archivado el 11 de febrero de 2014 en la Wayback Machine.
- ^ Brandon Boyer (21 de febrero de 2008). "Gamasutra - Cobertura de eventos de GDC 2008" . gamasutra.com . Gamasutra .
- ^ "Exclusivo: detrás de cámaras del debut de WiiWare de Final Fantasy" . gamasutra.com . Gamasutra . 23 de junio de 2008 . Consultado el 22 de septiembre de 2011 .
- ^ "L4D2 Vscripts - Comunidad de desarrolladores de válvulas" . developer.valvesoftware.com . Consultado el 6 de julio de 2018 .
- ^ "Guía de programación de Electric Imp" . electricimp.com .
- ^ a b c d e "VScript" . valveoftware.com . 2014-08-20 . Consultado el 17 de enero de 2015 .
- ^ "NewDark 1.25: ¿Guión de ardilla?" . ttlg.com . 2017-03-20 . Consultado el 25 de diciembre de 2019 .
- ^ "AI: Página principal - OpenTTD" . wiki.openttd.org . Consultado el 6 de julio de 2018 .
- ^ "iv-multiplayer.com" . www.iv-multiplayer.com . Consultado el 6 de julio de 2018 .
- ^ "m2-multiplayer.com" . www.m2-multiplayer.com . Consultado el 6 de julio de 2018 .
- ^ "Motor de blog de Thimbleweed Park" . blog.thimbleweedpark.com . Consultado el 6 de julio de 2018 .
- ^ "Simutrans-Squirrel-API: página principal" . dwachs.github.io . Consultado el 6 de julio de 2018 .
- ^ Multijugador de Vice City
- ^ "¡Bienvenido al sitio web de VC-MP!" . Archivado desde el original el 5 de abril de 2006 . Consultado el 4 de mayo de 2014 .
- ^ "Libertad desatada" . Consultado el 4 de diciembre de 2019 .
- ^ "th155-decomp" . Consultado el 19 de octubre de 2020 .
- ^ "El lenguaje de programación de la ardilla" . SourceForge . Consultado el 6 de julio de 2018 .
- ^ "Pasando a code.google.com y MIT License - The Language - Squirrel - The Programming Language" . 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
- Página web oficial