{{language|Lua
|exec=interpreted
|strength=strong
|safety=safe
|express=implicit
|checking=dynamic
|gc=yes
|site=http://www.lua.org
|LCT=yes
|bnf=http://www.lua.org/manual/5.1/manual.html}}{{Codepad}}{{CompileOnline}}{{language programming paradigm|Object-oriented}}The Lua (pronounced LOO-ah) [[programming language]] is a lightweight, [[reflective programming|reflective]], [[imperative programming|imperative]] and [[procedural programming|procedural]] language, designed as a scripting language with extensible semantics as a primary goal. 
The name is derived from the Portuguese word for moon.

Lua is commonly described as a "multi-[[:Category:Programming Paradigms|paradigm]]" language, providing a small set of general features that can be extended to fit different problem types, rather than providing a more complex and rigid specification to match a single paradigm. 
Lua, for instance, does not contain explicit support for inheritance, but allows it to be implemented relatively easily with metatables. 
Similarly, Lua allows programmers to implement namespaces, classes, and other related features using its single table implementation; first class functions allow the employment of many powerful techniques from functional programming; and full lexical scoping allows fine-grained information hiding to enforce the principle of least privilege.

In general, Lua strives to provide flexible meta-features that can be extended as needed, rather than supply a feature-set specific to one programming paradigm. 
As a result, the base language is light—in fact, the full reference interpreter is only about 150KB compiled—and easily adaptable to a broad range of applications.

==Citations==
* [[wp:Lua_%28programming_language%29|Wikipedia:Lua (programming language)]]

==Unimplemented programming tasks==
Output from [[Find_unimplemented_tasks]] :

Lua has 355 unimplemented programming tasks: 
  15 puzzle solver
  2048
  4-rings or 4-squares puzzle
  9 billion names of God the integer
  AKS test for primes
  Abbreviations, automatic
  Abbreviations, easy
  Abbreviations, simple
  Active Directory/Connect
  Active Directory/Search for a user
  Active object
  Address of a variable
  Aliquot sequence classifications
  Anagrams/Deranged anagrams
  Animation
  Append a record to the end of a text file
  Apply a digital filter (direct form II transposed)
  Arbitrary-precision integers (included)
  Archimedean spiral
  Arena storage pool
  Arithmetic-geometric mean/Calculate Pi
  Atomic updates
  Average loop length
  Balanced ternary
  Best shuffle
  Bitcoin/address validation
  Bitcoin/public point to address
  Bitmap/Bresenham's line algorithm
  Bitmap/Bézier curves/Cubic
  Bitmap/Bézier curves/Quadratic
  Bitmap/Flood fill
  Bitmap/Midpoint circle algorithm
  Bitmap/PPM conversion through a pipe
  Bitmap/Read an image through a pipe
  Bitwise IO
  Brace expansion
  Break OO privacy
  Bulls and cows/Player
  Call a function in a shared library
  Canny edge detector
  Carmichael 3 strong pseudoprimes
  Casting out nines
  Catmull–Clark subdivision surface
  Chat server
  Check Machin-like formulas
  Checkpoint synchronization
  Chinese zodiac
  Cholesky decomposition
  Church Numerals
  Circles of given radius through two points
  Closest-pair problem
  Color of a screen pixel
  Color quantization
  Colour bars/Display
  Colour pinstripe/Display
  Colour pinstripe/Printer
  Combinations and permutations
  Commatizing numbers
  Compare sorting algorithms' performance
  Compile-time calculation
  Compiler/AST interpreter
  Compiler/code generator
  Compiler/lexical analyzer
  Compiler/syntax analyzer
  Compiler/virtual machine interpreter
  Conjugate transpose
  Constrained genericity
  Constrained random points on a circle
  Continued fraction
  Continued fraction/Arithmetic/Construct from rational number
  Convert decimal number to rational
  Create a file on magnetic tape
  Create an object at a given address
  Currency
  Cut a rectangle
  Death Star
  Deconvolution/2D+
  Define a primitive data type
  Delegates
  Determine if only one instance is running
  Digital root/Multiplicative digital root
  Dining philosophers
  Discordian date
  Distributed programming
  Documentation
  Doubly-linked list/Definition
  Doubly-linked list/Element definition
  Doubly-linked list/Element insertion
  Doubly-linked list/Traversal
  Draw a cuboid
  Draw a pixel
  Draw a rotating cube
  Dutch national flag problem
  EKG sequence convergence
  Eertree
  Egyptian division
  Egyptian fractions
  Element-wise operations
  Elementary cellular automaton
  Enforced immutability
  Equilibrium index
  Euler's identity
  Events
  Executable library
  Extend your language
  Extensible prime generator
  FTP
  Factors of a Mersenne number
  Find common directory path
  Find largest left truncatable prime in a given base
  Find palindromic numbers in both binary and ternary bases
  Floyd-Warshall algorithm
  Four is magic
  Four is the number of letters in the ...
  Fractran
  Function frequency
  GUI component interaction
  GUI enabling/disabling of controls
  GUI/Maximum window dimensions
  Galton box animation
  Gaussian elimination
  Generate random chess position
  Go Fish
  Greyscale bars/Display
  HTTPS/Client-authenticated
  Handle a signal
  Hash join
  Hello world/Line printer
  Hello world/Web server
  Hickerson series of almost integers
  History variables
  Hofstadter Figure-Figure sequences
  Hofstadter Q sequence
  Honeycombs
  Horizontal sundial calculations
  Host introspection
  Hough transform
  Hunt The Wumpus
  Image convolution
  Image noise
  Index finite lists of positive integers
  Inheritance/Single
  Integer overflow
  Inverted index
  Inverted syntax
  Jaro distance
  Jewels and Stones
  Joystick position
  Julia set
  K-d tree
  K-means++ clustering
  Keyboard input/Flush the keyboard buffer
  Keyboard input/Keypress check
  Keyboard input/Obtain a Y or N response
  Keyboard macros
  Knapsack problem/0-1
  Knapsack problem/Bounded
  Knapsack problem/Continuous
  Knuth's algorithm S
  Knuth's power tree
  Kolakoski sequence
  LU decomposition
  Largest number divisible by its digits
  Last letter-first letter
  Law of cosines - triples
  Long multiplication
  Long primes
  Loops/Increment loop index within loop body
  Loops/Wrong ranges
  Lucas-Lehmer test
  Lucky and even lucky numbers
  Lychrel numbers
  MD5/Implementation
  Machine code
  Mad Libs
  Main step of GOST 28147-89
  Maze solving
  Median filter
  Memory allocation
  Memory layout of a data structure
  Metered concurrency
  Metronome
  Miller–Rabin primality test
  Mind boggling card trick
  Minesweeper game
  Modular exponentiation
  Modular inverse
  Mouse position
  Multiple regression
  Multiplicative order
  Narcissist
  Natural sorting
  Nautical bell
  Negative base numbers
  Nested templated data
  Non-continuous subsequences
  Nonoblock
  Nonogram solver
  Numeric error propagation
  OLE Automation
  Object serialization
  Odd word problem
  OpenWebNet Password
  Paraffins
  Parallel Brute Force
  Parallel calculations
  Parametric polymorphism
  Parametrized SQL statement
  Parse an IP Address
  Parsing/RPN to infix conversion
  Parsing/Shunting-yard algorithm
  Partition an integer X into N primes
  Pascal's triangle/Puzzle
  Pathological floating point problems
  Pattern matching
  Pentagram
  Percentage difference between images
  Percolation/Bond percolation
  Percolation/Mean cluster density
  Percolation/Mean run density
  Percolation/Site percolation
  Permutation test
  Permutations/Rank of a permutation
  Pig the dice game/Player
  Pinstripe/Printer
  Play recorded sounds
  Plot coordinate pairs
  Polymorphic copy
  Polynomial long division
  Polynomial regression
  Pragmatic directives
  Primes - allocate descendants to their ancestors
  Primorial numbers
  Problem of Apollonius
  Pythagoras tree
  Pythagorean quadruples
  Pythagorean triples
  QR decomposition
  RCRPG
  RPG Attributes Generator
  RSA code
  Ramer-Douglas-Peucker line simplification
  Random number generator (device)
  Ranking methods
  Rate counter
  Ray-casting algorithm
  Recaman's sequence
  Record sound
  Reflection/Get source
  Reflection/List methods
  Reflection/List properties
  Rendezvous
  Rep-string
  Resistor mesh
  Retrieve and search chat history
  Rosetta Code/Count examples
  Rosetta Code/Find bare lang tags
  Rosetta Code/Rank languages by popularity
  Runge-Kutta method
  S-Expressions
  SEDOLs
  SOAP
  SQL-based authentication
  Safe addition
  Sailors, coconuts and a monkey problem
  Same Fringe
  Scope modifiers
  Scope/Function names and labels
  Sequence of primorial primes
  Set consolidation
  Set of real numbers
  Set puzzle
  Shortest common supersequence
  Sierpinski carpet
  Sierpinski pentagon
  Sierpinski triangle
  Simple database
  Simulate input/Keyboard
  Simulate input/Mouse
  Singleton
  Singly-linked list/Element definition
  Singly-linked list/Element insertion
  Singly-linked list/Traversal
  Sokoban
  Solve a Hidato puzzle
  Solve a Hopido puzzle
  Solve a Numbrix puzzle
  Solve the no connection puzzle
  Sorting algorithms/Heapsort
  Sorting algorithms/Radix sort
  Sorting algorithms/Strand sort
  Sparkline in unicode
  Speech synthesis
  Spelling of ordinal numbers
  Spinning rod animation/Text
  Square but not cube
  Start from a main routine
  State name puzzle
  Stream Merge
  Subtractive generator
  Sum and Product Puzzle
  Sum to 100
  Superellipse
  Superpermutation minimisation
  Taxicab numbers
  Terminal control/Coloured text
  Terminal control/Cursor movement
  Terminal control/Cursor positioning
  Terminal control/Dimensions
  Terminal control/Hiding the cursor
  Terminal control/Inverse video
  Terminal control/Positional read
  Terminal control/Preserve screen
  Terminal control/Unicode output
  Ternary logic
  The ISAAC Cipher
  The Name Game
  Thiele's interpolation formula
  Topic variable
  Topological sort
  Total circles area
  Tree traversal
  Truth table
  Twelve statements
  URL parser
  Ulam spiral (for primes)
  Unicode strings
  Update a configuration file
  Use another language to call a function
  User input/Graphical
  Vampire number
  Variable size/Get
  Variable size/Set
  Variable-length quantity
  Verify distribution uniformity/Chi-squared test
  Verify distribution uniformity/Naive
  Video display modes
  Vigenère cipher/Cryptanalysis
  Visualize a tree
  Vogel's approximation method
  Walk a directory/Recursively
  Water collected between towers
  Window creation/X11
  Window management
  Word search
  World Cup group stage
  Write to Windows event log
  Xiaolin Wu's line algorithm
  Yahoo! search interface
  Yin and yang
  Zebra puzzle
  Zeckendorf arithmetic

See also [[Reports:Tasks_not_implemented_in_Lua]]