World Library  
Flag as Inappropriate
Email this Article

Squirrel (programming language)

Article Id: WHEBN0002819069
Reproduction Date:

Title: Squirrel (programming language)  
Author: World Heritage Encyclopedia
Language: English
Subject: MiniD, Lightweight programming language, Lua (programming language), List of object-oriented programming languages, Scripting language
Collection:
Publisher: World Heritage Encyclopedia
Publication
Date:
 

Squirrel (programming language)

Squirrel
Paradigm(s) Multi-paradigm: scripting, imperative, functional, object-oriented
Designed by Alberto Demichelis
Appeared in 2003
Stable release 3.0.6 / April 2, 2014 (2014-04-02)
Typing discipline Dynamic
Influenced by Lua, Python, C++, JavaScript
Influenced MiniD
OS Cross-platform
License MIT license
Filename extension(s) .nut
Website squirrel-lang.org

Squirrel is a high level imperative, object-oriented programming language, designed to be a light-weight scripting language that fits in the size, memory bandwidth, and real-time requirements of applications like video games and hardware such as Electric Imp.

MirthKit, a simple toolkit for making and distributing open source, cross-platform 2D games, uses Squirrel for its platform.[1] It is used extensively by Code::Blocks for scripting and was also used in Final Fantasy Crystal Chronicles: My Life as a King[2][3] It is also used in Left 4 Dead 2 and Portal 2 for scripted events.[4]

Language features

Syntax

Squirrel uses a C-like syntax.

Factorial in Squirrel:

  function factorial(x)
  {
    if (x == 0) {
      return 1;
    }
    else {
      return x * factorial(x-1);
    }
  }

Generators:

  function not_a_random_number_generator(max) {
    local last = 42;
    local IM = 139968;
    local IA = 3877;
    local IC = 29573;
    for(;;) { // loops forever
      yield (max * (last = (last * IA + IC) % IM) / IM);
    }
  }

  local randtor = not_a_random_number_generator(100);

  for(local i = 0; i < 10; i += 1)
     print(">"+resume randtor+"\n");

Classes and inheritance:

  class BaseVector {
    constructor(...)
    {
      if(vargv.len() >= 3) {
        x = vargv[0];
        y = vargv[1];
        z = vargv[2];
      }
    }
    x = 0;
    y = 0;
    z = 0;
  }

  class Vector3 extends BaseVector {
    function _add(other)
    {
      if(other instanceof ::Vector3)
        return ::Vector3(x+other.x,y+other.y,z+other.z);
      else
        throw "wrong parameter";
    }
    function Print()
    {
      ::print(x+","+y+","+z+"\n");
    }
  }

  local v0 = Vector3(1,2,3)
  local v1 = Vector3(11,12,13)
  local v2 = v0 + v1;
  v2.Print();

Applications

Non-game applications using Squirrel

Games using Squirrel

History

The language was made public in 2003 under the zlib/libpng license.[10] In November 2010, the license was changed to MIT license to enable the project to be hosted on Google Code.[11][12] It is developed and maintained by Alberto Demichelis.

See also

References

  1. ^ MirthKit Developer Wiki
  2. ^ Brandon Boyer (21 February 2008). "Gamasutra - GDC 2008 Event Coverage". gamasutra.com.  
  3. ^ "Exclusive: Behind The Scenes of Final Fantasy's WiiWare Debut". gamasutra.com.  
  4. ^ L4D2 Vscripts
  5. ^ "Welcome to Vice City Multiplayer website!". vicecitymultiplayer.com. Retrieved 2014-05-04. 
  6. ^ http://wiki.openttd.org/?title=AI:Main_Page&oldid=76593
  7. ^ http://www.5-mp.com/index
  8. ^ http://www.iv-multiplayer.com
  9. ^ http://www.m2-multiplayer.com
  10. ^ "The Squirrel programming language". sourceforge.net. Retrieved 25 September 2011. 
  11. ^ "Moving to code.google.com and MIT License". squirrel-lang.org. Retrieved 25 September 2011. 
  12. ^ "squirrel". google.com. Retrieved 25 September 2011. 

External links

  • Squirrel Home Page
  • SquirrelWiki
  • Squirrel Documentation Project (Searchable)
  • MirthKit Home Page
  • L4D2 Vscripts
  • SquiLu Squirrel modified with lua libraries
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and USA.gov, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for USA.gov and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
 
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
 
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.
 



Copyright © World Library Foundation. All rights reserved. eBooks from Hawaii eBook Library are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.