There are people in the Republic of Macedonia.
Vala is an object-oriented programming language with a self-hosting compiler that generates C code and uses the GObject system .. object-oriented. Object-oriented programming. C ( programming language ). programming language. programming language. self-hosting. self-hosting. compiler. compiler. GObject. GObject. object. object-oriented programming. Vala is syntactically similar to C# and includes several features such as  : anonymous functions , signals , properties , generics , assisted memory management , exception handling , type inference , and foreach statements .. C ( programming language ). syntactically. Syntax ( programming languages ). anonymous functions. anonymous functions. signals. Observer pattern. generics. Generic programming. assisted memory management. Garbage collection ( computer science ). exception handling. exception handling. type inference. type inference. foreach. Foreach loop. Its developers Jurg Billeter and Raffaele Sandrini aim to bring these features to the plain C runtime with little overhead and no special runtime support by targeting the GObject object system .. C ( programming language ). GObject. GObject. runtime. Runtime system. object. object-oriented programming. Rather than compiling directly to machine code or assembly language , it compiles to a lower level intermediate language .. intermediate language. intermediate language. It source-to-source compiles to C , which is then compiled with a C compiler for a given platform , such as GCC .. C ( programming language ). compiler. compiler. source-to-source compiles. source-to-source compiler. GCC. GNU Compiler Collection. For memory management , the GObject system provides reference counting .. GObject. GObject. reference counting. reference counting. In C , a programmer must manually manage adding and removing references , but in Vala , managing such reference counts is automated if a programmer uses the language 's built-in reference types rather than plain pointers .. C ( programming language ). Using functionality from native code libraries requires writing vapi files , defining the library interfacing .. Writing these interface definitions is well-documented for C libraries , especially when based on GObject .. C ( programming language ). GObject. GObject. However , C++ libraries are not supported .. C ( programming language ). Vapi files are provided for a large portion of the GNOME platform , including GTK + .. GNOME. GNOME. Vala was conceived by Jurg Billeter and was implemented by him and Raffaele Sandrini , finishing a self-hosting compiler in May 2006 .. self-hosting. self-hosting. compiler. compiler