Comments ↓
Tiny lightweight multipurpose programming language written in C
Fbgc is a script language considers small code size and less memory allocations for its objects.
There is a gap between Matlab like numerical computing environments and Python like script languages. Albeit they have been used for different purposes, but people did not use them for real-time programs or where speed and memory is a problem. Fbgc aims to fill this gap. It is a tiny and a powerful language and can be used everywhere such as small projects, as a part of big projects or as a numerical computing tool.
Fbgc libraries were written from scratch, this allows developers to optimize codes as necessary and gives more space to realize what needs to be done.
Fbgc aims
- Small program size
- Low memory allocation
- Numerical computing environment (scientific package)
- Graphical User Interface for different purposes (including latex compiler and libreoffice programs to create an environment based on fbgc)
Features (for users):
- Easy to learn and understandable syntax, similar to writing notes on a math notebook.
- Memory friendly, does not consume your precious RAM.
- Typeless and everything is object.
- It has its own memory management system, hence garbage collector.
- If users know C/C++, their code can be easily imported into fbgc.
- Similar to well known languages, read the documentation and ready to go.
- Supports classes, inheritance, operator overloading etc. (OOP features)
Features (for developers):
- Basic C/C++ API functions, easy to import any C/C++ code into fbgc.
- Every part of fbgc is written from scratch, main parts only need C standard library.
- Libraries can be used in any other C/C++ projects.
# This is a line comment
x = 5 # integer
x = 3.14159 # double
x = 'Hey this is a string' # string
x = (1,2,1.23,('Hey i am tuple!')) # tuple
x = [1,2,3 ; 4,5,6] # 2x3 matrix
# Conditional structures
if x == 5 & x != "fbgc"
print("Ok!")
elif x != 3.2
print("inside elif")
end
#For loops
for i = 1:0.1:5
print(i)
end
#Strings and tuples are also iterable in for loops
x = (5,"a","c","x")
for i = x
print(i) # prints 5, 'a', 'c', 'x'
end
#function definition
is_even = fun(x)
return x % 2 == 1
end
#class definition, fbgc allows nested classess
car = class()
power = 0
tires = 4
engine = class()
health = 100
end
#constructor
init = fun(p,t)
.power = p
.tires = t
end
#operator overloading
#now car objects can use subscript operator
__[]__ = fun(x)
return power*x
end
end
#Importing a library
load('math','*') # loads everything from math library into globals scope
load('math','pi','sin') # loads only sin and pi from math library into global scope
m = load('math') # loads math library into variable m, hence library variables can be used via m e.g m.sin() or m.pi
Information updated 07/18/20