{{language|Lua |exec=interpreted |strength=strong |safety=safe |express=implicit |checking=dynamic |gc=yes |site= |LCT=yes |bnf=}}{{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.


  • [[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 Bernoulli numbers 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 Hofstadter-Conway $10,000 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 Tic-tac-toe 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]]