MiniScript es un lingua de programi de nivel alta cual intende es peti e fasil per los ci comensa aprende la programi. Lo suporta modeles strutural, prosedal e ojetal (tra prototipos). Developa de MiniScript e sua distinguintes es inspirada par linguas Python, Lua, REALbasic e C#.[1]

Txintxila Minnie, la mascote de MiniScript

Sua varia stable prima ia es publicida a 2017. La fonte ia deveni abrida a 2019.

La interpretador ofisial[2] es internable a otra programes (scriveda en C++ o C#) ma on pote ance usa lo como un esecutador interatante (REPL) o un esecutador de programetas. La sufisa ofisial de fixes de programes es .ms.

On ave alga projetas nonofisial cual tradui MiniScript a otra plataformas e capasi lor usores a interna MiniScript a programes scriveda en Kotlin,[3] Java[4] e TypeScript.[5]

Datos

edita

MiniScript ave un cuantia peti de tipos de datos esensal: numeros, cadenas, listas e asosias.

On ave ance funsionas per organiza la codigo en modo prosedal. Como en multe linguas moderna, la funsionas es “sitadanes de la clase prima”.

On ave un valua spesial null sinifiante la asentia de cualce valua usosa. Lo parteni a sua propre tipo distinguida.

On pote crea tipos nova usante asosias como “prototipos”. La nomerias de funsionas e modulos es ance asosias.

Strutures de controla

edita

MiniScript furni poca strutures de controla simple:

  • if per eleje la ramo de esecuta
  • while per sicles con un espresa elejente
  • for per sicles iterante

Esemplos de programes

edita

Program vera simple cual primi “Alo mundo”:

print "Alo mundo!"

Program per calcula la fatoral:

// Calcula la fatoral de un intero positiva
fatoral = function(x)
	if x < 2 then return 1
	return x * fatoral(x - 1)
end function

print fatoral(input("Tape un numero, e sua fatoral va es primida: ").val)

Esemplo de labora con ojetos:

Forma = {}
Forma.lados = 0

Cuadro = new Forma
Cuadro.lados = 4

x = new Cuadro
print x.lados   // primi: 4

Forma.grados = function()
    return 180 * (self.lados - 2)
end function

print x.grados // primi: 360

Estende de la tipos fundal:

string.tituli = function()
    if self.len < 2 then return self.upper
    return self[0].upper + self[1:]
end function

print "miniScript".tituli  // primi: MiniScript

Ospitadores

edita

Alga ambientes cual interna o esposa MiniScript:

  • Mini Micro[6] – un computador retromodosa fantasiada do MiniScript es sua lingua de programi e ance de linia de comandas.
  • Farmtronics[7] – un modifia de la jua “Stardew Valley” en cual on pote oteni un computador de casa e robotes e programi los en MiniScript.
  • Grey Hack[8] – un jua de imitador de codigor do MiniScript (remarcada a GreyScript) es usada como la lingua de programi de la computadores en la jua.
  • Robo Reindeer Rumble[9] – un jua de programi multijuoral do juores programi robotes combatante (cual aspeta como renos) en MiniScript.

Projetas

edita

Asi es alga projetas scriveda en MiniScript:

  • Inversion Institute[10] (“Institui de Inversa”) – un jua-rompetesta sur majia e lojica.
  • Mini Micro Sokoban[11] – un varia de jua nion clasica.
  • World Conquest[12] (“Concista de Mundo”) – un minijua orijinal de stratejia.
  • µ-hack[13] – un jua “roguelike” retromodosa.

Lias esterna

edita

Notas

edita
  1. Esajo sur la comensa de MiniScript – https://luminaryapps.com/blog/miniscript-why/
  2. Reali ofisial de MiniScript – https://github.com/JoeStrout/miniscript
  3. Tradui a Kotlin – https://github.com/Arcnor/miniscript-kt
  4. Tradui a Java – https://github.com/heatseeker0/JavaMiniScript
  5. Tradui a TypeScript – https://github.com/sebnozzi/miniscript.ts
  6. Paje prima de Mini Micro – https://miniscript.org/MiniMicro/index.html
  7. Arciveria de Farmtronics – https://github.com/JoeStrout/Farmtronics
  8. Paje de Grey Hack en la boteca Steam – https://store.steampowered.com/app/605230/Grey_Hack/
  9. Paje de jua Robo Reindeer Rumble – https://miniscript.org/RoboReindeer/
  10. Paje de Inversion Institute en la boteca Steam – https://store.steampowered.com/app/2145480/Inversion_Institute/
  11. Arciveria de Mini Micro Sokoban – https://github.com/sebnozzi/minimicro-sokoban
  12. Arciveria de World Conquest – https://github.com/JoeStrout/worldConquest
  13. Arciveria de µ-hack – https://github.com/treytomes/micro-hack