FreeBASIC
'''FreeBASIC''' is a free/open source (GPL), 32-bit BASIC compiler for Microsoft Windows, protected-mode DOS (via a DOS extender), and Linux, with unofficial ports to Mac OS and FreeBSD. An experimental Xbox version is no longer maintained.
FreeBASIC makes use of the GNU Binutils programming tools as backends, and can produce console, QuickBASIC-compatible graphical and GUI executables, along with dynamic and static libraries. A GCC frontend is under development, which will enable compilation for many more operating systems than currently supported.
Currently, software libraries like GTK+, GSL, SDL, Allegro, Lua and OpenGL can be used directly (no wrappers, only function and structure prototypes), and more are being added on every new release. A complete set of the Windows API headers is also included.
The compiler, and its nearly 90,000 lines of code, was, and still is, compiled by itself (in other words, FreeBASIC is a self-hosting compiler). The first version of FreeBASIC was written in Visual Basic for DOS for that purpose.
See also
- FreeBASIC homepage
- FreeBASIC on Wikipedia
Tasks
- 100 doors
- 24 game
- 4-rings or 4-squares puzzle
- 9 billion names of God the integer
- A+B
- ABC Problem
- AKS test for primes
- Abstract type
- Abundant odd numbers
- Abundant, deficient and perfect number classifications
- Accumulator factory
- Ackermann function
- Address of a variable
- Align columns
- Almost prime
- Anagrams
- Anagrams/Deranged anagrams
- Angle difference between two bearings
- Animate a pendulum
- Animation
- Anonymous recursion
- Anti-primes
- Append a record to the end of a text file
- Apply a callback to an array
- Arbitrary-precision integers (included)
- Archimedean spiral
- Arithmetic evaluation
- Arithmetic-geometric mean
- Arithmetic/Complex
- Arithmetic/Integer
- Array concatenation
- Array length
- Arrays
- Assertions
- Attractive numbers
- Averages/Arithmetic mean
- Averages/Mean angle
- Averages/Mean time of day
- Averages/Median
- Averages/Mode
- Averages/Pythagorean means
- Averages/Root mean square
- Averages/Simple moving average
- Babbage problem
- Balanced brackets
- Barnsley fern
- Base58Check encoding
- Benford's law
- Bernoulli numbers
- Binary digits
- Bitcoin/address validation
- Bitmap/Bézier curves/Cubic
- Bitmap/Bézier curves/Quadratic
- Bitmap/Flood fill
- Bitmap/Midpoint circle algorithm
- Bitwise operations
- Boolean values
- Box the compass
- Break OO privacy
- Bresenham's Line Algorithm
- Brownian tree
- CRC-32
- CSV data manipulation
- CUSIP
- Caesar cipher
- Calculating the value of e
- Calendar
- Call a foreign-language function
- Call a function in a shared library
- Call an object method
- Carmichael 3 strong pseudoprimes
- Case-sensitivity of identifiers
- Catalan numbers
- Catalan numbers/Pascal's triangle
- Catamorphism
- Chaos game
- Character codes
- Check Machin-like formulas
- Check that file exists
- Cholesky decomposition
- Chowla numbers
- Cipolla's algorithm
- Classes
- Closest-pair problem
- Closures/Value capture
- Collections
- Color of a screen pixel
- Colour bars/Display
- Colour pinstripe/Display
- Comma quibbling
- Command-line arguments
- Comments
- Compare a list of strings
- Compile-time calculation
- Compiler/lexical analyzer
- Compound data type
- Concurrent computing
- Conditional structures
- Constrained random points on a circle
- Convert decimal number to rational
- Convert seconds to compound duration
- Copy a string
- Count in factors
- Count in octal
- Count occurrences of a substring
- Count the coins
- Create a file
- Create a two-dimensional array at runtime
- Create an object at a given address
- Cumulative standard deviation
- Currying
- Damm algorithm
- Data Encryption Standard
- Date format
- Date manipulation
- Day of the week
- Decimal floating point number to binary
- Define a primitive data type
- Delete a file
- Department Numbers
- Detect division by zero
- Determine if a string is numeric
- Digital root
- Digital root/Multiplicative digital root
- Documentation
- Draw a clock
- Draw a sphere
- Draw pixel 2
- Dutch national flag problem
- Dynamic variable names
- Eban numbers
- Egyptian division
- Egyptian fractions
- Elliptic Curve Digital Signature Algorithm
- Emirp primes
- Empty directory
- Empty program
- Empty string
- Entropy
- Entropy/Narcissist
- Enumerations
- Environment variables
- Equilibrium index
- Ethiopian multiplication
- Euler method
- Euler's sum of powers conjecture
- Evaluate binomial coefficients
- Even or odd
- Evolutionary algorithm
- Exceptions
- Exceptions/Catch an exception thrown in a nested call
- Execute Brainfuck
- Execute HQ9+
- Execute a system command
- Exponentiation operator
- Exponentiation order
- Extend your language
- Extensible prime generator
- Extract file extension
- Extreme floating point values
- FASTA format
- Factorial
- Factors of a Mersenne number
- Factors of an integer
- Farey sequence
- Faulhaber's triangle
- Feigenbaum constant calculation
- Fibonacci n-step number sequences
- Fibonacci sequence
- Fibonacci word
- Fibonacci word/fractal
- Filter
- Find common directory path
- Find palindromic numbers in both binary and ternary bases
- Find the intersection of a line with a plane
- Find the intersection of two lines
- Find the last Sunday of each month
- Find the missing permutation
- First-class functions
- Five weekends
- FizzBuzz
- Floyd's triangle
- Floyd-Warshall algorithm
- Forest fire
- Formatted numeric output
- Fractal tree
- Fractran
- French Republican calendar
- Function definition
- Function prototype
- Fusc sequence
- GUI component interaction
- GUI enabling/disabling of controls
- GUI/Maximum window dimensions
- Gamma function
- Gaussian elimination
- General FizzBuzz
- Generate Chess960 starting position
- Generate lower case ASCII alphabet
- Generate random chess position
- Generic swap
- Get system command output
- Go Fish
- Gray code
- Greatest common divisor
- Greatest element of a list
- Greatest subsequential sum
- Greyscale bars/Display
- Guess the number
- Guess the number/With feedback
- Guess the number/With feedback (player)
- Hamming numbers
- Happy numbers
- Harshad or Niven series
- Haversine formula
- Hello world!
- Hello world/Graphical
- Hello world/Line printer
- Hello world/Newline omission
- Hello world/Standard error
- Hello world/Text
- Heronian triangles
- Hickerson series of almost integers
- Higher-order functions
- Hilbert curve
- Hofstadter Q sequence
- Hofstadter-Conway $10,000 sequence
- Horizontal sundial calculations
- Horner's rule for polynomial evaluation
- Host introspection
- Hostname
- I before E except after C
- IBAN
- Identity matrix
- Image noise
- Include a file
- Increment a numerical string
- Infinity
- Inheritance/Multiple
- Inheritance/Single
- Input loop
- Input/Output for Lines of Text
- Input/Output for Pairs of Numbers
- Integer comparison
- Integer overflow
- Integer sequence
- Interactive programming
- Introspection
- Inverted syntax
- Iterated digits squaring
- Jaro distance
- Jewels and Stones
- JortSort
- Josephus problem
- Jump anywhere
- Kaprekar numbers
- Keyboard input/Flush the keyboard buffer
- Keyboard input/Keypress check
- Keyboard input/Obtain a Y or N response
- Knight's tour
- Knuth shuffle
- Koch curve
- Kronecker product
- LZW compression
- Langton's ant
- Largest int from concatenated ints
- Last Friday of each month
- Law of cosines - triples
- Leap year
- Least common multiple
- Left factorials
- Leonardo numbers
- Letter frequency
- Levenshtein distance
- Linear congruential generator
- Literals/Floating point
- Literals/Integer
- Literals/String
- Logical operations
- Long multiplication
- Long primes
- Longest common prefix
- Look-and-say sequence
- Loop over multiple arrays simultaneously
- Loops/Break
- Loops/Continue
- Loops/Do-while
- Loops/Downward for
- Loops/For
- Loops/For with a specified step
- Loops/Foreach
- Loops/Increment loop index within loop body
- Loops/Infinite
- Loops/N plus one half
- Loops/Nested
- Loops/While
- Lucas-Lehmer test
- Ludic numbers
- Luhn test of credit card numbers
- Lychrel numbers
- MD4
- MD5
- MD5/Implementation
- Mad Libs
- Magic squares of doubly even order
- Magic squares of odd order
- Magic squares of singly even order
- Maze generation
- McNuggets Problem
- Memory layout of a data structure
- Metaprogramming
- Middle three digits
- Miller–Rabin primality test
- Modular exponentiation
- Modular inverse
- Monte Carlo methods
- Monty Hall problem
- Morse code
- Multifactorial
- Multiplication tables
- Multisplit
- Munchausen numbers
- Munching squares
- Mutual recursion
- N'th
- N-queens problem
- Naming conventions
- Narcissistic decimal number
- Nested function
- Non-decimal radices/Convert
- Non-decimal radices/Input
- Non-decimal radices/Output
- Nth root
- Null object
- Numerical integration
- Old Russian measure of length
- Ordered words
- Palindrome detection
- Pangram checker
- Paraffins
- Parse command-line arguments
- Pascal's triangle
- Pathological floating point problems
- Pell's equation
- Perfect numbers
- Permutations
- Permutations by swapping
- Permutations/Derangements
- Permutations/Rank of a permutation
- Pernicious numbers
- Phrase reversals
- Pi
- Pick random element
- Pig the dice game
- Pinstripe/Display
- Plasma effect
- Playfair cipher
- Pointers and references
- Polynomial regression
- Price fraction
- Primality by trial division
- Prime conspiracy
- Prime decomposition
- Primorial numbers
- Probabilistic choice
- Program name
- Program termination
- Proper divisors
- Pythagoras tree
- Pythagorean quadruples
- Pythagorean triples
- Quaternion type
- Queue/Definition
- Queue/Usage
- Quine
- RIPEMD-160
- RSA code
- Ramsey's theorem
- Random number generator (device)
- Random number generator (included)
- Random numbers
- Range expansion
- Range extraction
- Ray-casting algorithm
- Read a configuration file
- Read a file line by line
- Read a specific line from a file
- Read entire file
- Real constants and functions
- Recaman's sequence
- Reflection/Get source
- Remove duplicate elements
- Remove lines from a file
- Rename a file
- Repeat
- Repeat a string
- Return multiple values
- Reverse a string
- Reverse the gender of a string
- Reverse words in a string
- Roman numerals/Decode
- Roman numerals/Encode
- Rot-13
- Run-length encoding
- Runge-Kutta method
- SEDOLs
- SHA-1
- SHA-256
- Safe primes and unsafe primes
- Sattolo cycle
- Search a list
- Self-describing numbers
- Semordnilap
- Sequence of non-squares
- Sequence of primes by trial division
- Sequence of primorial primes
- Shell one-liner
- Shoelace formula for polygonal area
- Short-circuit evaluation
- Show the epoch
- Sierpinski triangle/Graphical
- Sieve of Eratosthenes
- Simple windowed application
- Sleep
- Smith numbers
- Sort an array of composite structures
- Sort an integer array
- Sort using a custom comparator
- Sorting Algorithms/Circle Sort
- Sorting algorithms/Bubble sort
- Sorting algorithms/Cocktail sort
- Sorting algorithms/Comb sort
- Sorting algorithms/Counting sort
- Sorting algorithms/Cycle sort
- Sorting algorithms/Gnome sort
- Sorting algorithms/Heapsort
- Sorting algorithms/Insertion sort
- Sorting algorithms/Merge sort
- Sorting algorithms/Pancake sort
- Sorting algorithms/Permutation sort
- Sorting algorithms/Quicksort
- Sorting algorithms/Selection sort
- Sorting algorithms/Shell sort
- Sorting algorithms/Sleep sort
- Sorting algorithms/Stooge sort
- Spinning rod animation/Text
- Spiral matrix
- Square-free integers
- Stack
- Start from a main routine
- Statistics/Basic
- Statistics/Normal distribution
- Stem-and-leaf plot
- Stern-Brocot sequence
- String append
- String case
- String comparison
- String concatenation
- String interpolation (included)
- String length
- String matching
- String prepend
- Strip a set of characters from a string
- Strip comments from a string
- Strip control codes and extended characters from a string
- Strip whitespace from a string/Top and tail
- Substitution Cipher
- Substring
- Substring/Top and tail
- Sum digits of an integer
- Sum multiples of 3 and 5
- Sum of a series
- Sum of squares
- Sunflower fractal
- Superellipse
- Superpermutation minimisation
- System time
- Taxicab numbers
- Temperature conversion
- Terminal control/Clear the screen
- Terminal control/Ringing the terminal bell
- The ISAAC Cipher
- The Twelve Days of Christmas
- Thue-Morse
- Time a function
- Tonelli-Shanks algorithm
- Topic variable
- Totient function
- Trabb Pardo–Knuth algorithm
- Trigonometric functions
- Truncatable primes
- Two Sum
- Undefined values
- Unicode variable names
- Update a configuration file
- Validate International Securities Identification Number
- Vampire number
- Van Eck sequence
- Van der Corput sequence
- Variable size/Get
- Variable size/Set
- Variadic function
- Vector
- Vector products
- Window creation
- Write entire file
- Write float arrays to a text file
- Xiaolin Wu's line algorithm
- Yin and yang
- Zeckendorf number representation
- Zero to the zero power
- Zhang-Suen thinning algorithm
- Zig-zag matrix