Hello,
I developed this project a long time ago and it was designed it for Turkish language. But I would like to talk about it in English and I am thinking of recompiling this project for English language in a free time. This project is a Win32 compiler and a development environment at the same time. I developed it from scratch and no compiler, linker, assembler, library or some third party was used. I created the structure and the working principle according to my own philosophy. So, it is a unique project, completely.
My aim was not to develop a new language, product, etc. There is no need either. I just wanted to create an experimental project for academic reasons.
Click here to download.
I wrote the project in assembly language, completely. The project size is 53 kb and the default compiled exe size is 3 kb. The file size expands according to the code you write.
You can configure the form components as you like in the development environment. Expand, hide, etc. I also recorded these in my own way and read them. There is no resource in the compiled exe.
Usage
I added 5 basic components for the interface.
Button, combobox, edit, listbox ve static.
You can add these components to the form by clicking the buttons on the top, you can adjust properties on the right screen. You can add events, as well.
In the lower part, there is an information screen. You can see incorrect lines of code and status from there.
The code screen and the form stand in back-to-back. You can easily switch using the buttons at the top.
And finally you can compile and run with the buttons on the top right.
You can find the compiled executable file in the project folder.
Programming Language
Turkish characters can be used in the programming language.
Defining Variables
There are two types of variables.
number(sayı) and character(karakter)
sayı:
sayı is an integer data type and it can store a number in the range −(2^31) to 2^31-1
Usage:
sayı abc sayı abc=234 |
karakter:
You can store character arrays in the karakter data type.
Usage:
karakter[5] abc |
karakter[5] abc=asd |
We defined abc and initialized it with "asd".
We use variables by exclamation(!) symbol.
!abc=4 !abc=!diğerdeğişken |
and
You can make calculations.
Usage:
!abc=!abc+1 !abc=1+3*4/2 !abc=!diğerdeğişken+2*3 |
and also you can assign a string to karakter data type, as well.
!abc=yenistring |
But be careful not to exceed the defined size.
Negative Numbers:
We express negative numbers by putting an 'e' in front of the number.
Usage:
!abc=e2 |
e2 = -2
The components;
Text assignment feature
Usage:
button1.yazı=deneme button1.yazı=!değişkenadı edit1.yazı=firex edit1.yazı=!değişkenadı |
Position adjustment
button1.pozisyon(24,43) button1.pozisyon(!x,!y) |
Size adjustment
button1.boyut(50,100) button1.boyut(!genişlik,!yükseklik) |
Enable/Disabled
button1.aktif button1.pasif |
Show/Hide
button1.göster button1.gösterme |
Add an element to the listbox
listbox1.lbekle=elemanyazı listbox1.lbekle=!eklenen |
Add an element to the combobox
combobox1.cbekle=elemanyazı combobox1.cbekle=!eklenen |
Delete an element from the listbox
listbox1.lbsil=1 |
It deletes the 1. (first) element.
Delete an element from the combobox
combobox1.cbsil=1 |
Other functions
Close:
Usage:
kapat |
and
Message Box:
Usage:
mesajkutusu(başlık,deneme) mesajkutusu(!başlık,!yazı) mesajkutusu(deneme,!yazı) |
Events
When the program starts:
Usage:
programaçılırken mesajkutusu(test,deneme) olayson |
olayson |
All events end with the "olayson" tag.
When the program closes:
Usage:
programkapanırken mesajkutusu(test,deneme) olayson |
On Click:
Usage:
tıklayınca button1 kapat olayson button2 mesajkutusu(deneme,deneme) olayson olayson |
Usage:
button1 kapat olayson |
When a component is selected:
Usage:
seçildiğinde combobox1 kapat olayson olayson |
When a component is changed:
Kullanım:
değiştiğinde edit1 kapat olayson edit2 mesajkutusu(deneme,deneme) olayson olayson |
When the listbox is selected:
Usage:
lbseçildiğinde Listbox1 kapat olayson olayson |
When the listbox selection is change:
Usage:
lbseçimdeğişim Listbox1 kapat olayson olayson |
Conditionals:
You can compare variables, numbers, variable-numbers, etc...
>, <, >=, <=, =
You can use these operators for comparison.
Comparisons can be use nested.
Usage:
şart(2<!abc) mesajkutusu(deneme,deneme) şartson |
We use this tag for ending the comparison
şartson |
Loop:
Usage:
döngü(!sayi<15) mesajkutusu(deneme,test) !sayi=!sayi+1 döngüson |
You can use nested loops, as well.
Functions:
You can define your functions.
Usage:
fonksiyon abc !a=!a*2 !b=2+3+!a fonkson |
We use this tag for ending the function
fonkson |
We call the function this way.
çağır fonksiyonismi |
Usage:
fonksiyon abc !a=!a*2 !b=2+3+!a fonkson ... çağır abc |
Error Messages
"Değişken bloğu bulunamadı" (Variable block could not be found)
"Kod bloğu bulunamadı" (Code block could not be found)
"Kod bloğu kapatılmadı" (Code block not closed)
The most basic program block
değişkenler kodlar son |
Variables block must take the first place.
değişkenler |
"Bileşen bulunamadı." (Component could not be found), you must add the component you defined in the code.
"Kapanmayan blok bulunmakta" There is an unclosed block. You must close a component, loop or event, etc...
The programming language is processed line by line. Do not use unnecessary spaces in a single line.
Thanks...
Examples
Program1:
At first, place two buttons on the form.
Code:
değişkenler karakter[7] abc=deneme karakter[5] asd=test kodlar tıklayınca button1 mesajkutusu(!abc,!asd) olayson button2 kapat olayson olayson son |
Program2:
Place one button on the form.
Code:
değişkenler sayı !x=0 sayı !y=0 kodlar tıklayınca button1 döngü(!x<200) button1.pozisyon(!x,!y) !x=!x+1 !y=!y+1 döngüson olayson olayson son |
Program3:
Place one button and one listbox on the form.
Code:
değişkenler sayı x=0 karakter[3] eleman=ok kodlar tıklayınca button1 döngü(!x<6) listbox1.lbekle=!eleman !x=!x+1 şart(!x=3) mesajkutusu(yarısı,yarısına geldik) şartson döngüson olayson olayson programaçılırken mesajkutusu(merhaba,merhaba) olayson programkapanırken mesajkutusu(hoşçakal,hoşçakal) olayson son |