தமிழி கையேடு

தமிழி மொழி கையேடு v0.1.4

தமிழி என்பது எல்எல்விஎம் (LLVM AOT) இன்ஜின் மற்றும் ஏஓடி கம்பைலேஷன் மெக்கானிசம் கொண்டு உருவாக்கப்பட்ட ஒரு நவீன, அதிவேக எக்ஸ்பிரஷன்-டிரைவன் புரோகிராமிங் மொழியாகும். இது பழைய மல்டி-லைன் பிளாக்குகளை நீக்கிவிட்டு, மிகக் கச்சிதமான சிங்கிள்-லைன் லீனியர் சிண்டாக்ஸ் அமைப்பைக் கொண்டுள்ளது.

⚠️ ஸ்பேஸிங் விதி: எல்லா குறிகளுக்கும் (=, +, ?, :, ;, {, }) முன்னாடியும் பின்னாடியும் ஒரு ஸ்பேஸ் கட்டாயம் இருக்கணும்.

2. மாறிகள் டிக்ளரேஷன் (Variables Setup)

தமிழி மொழியில் முழு எண்களைக் குறிக்க Num அல்லது எண் கீவேர்டும், உரைகளைக் குறிக்க Str அல்லது வரி கீவேர்டும் பயன்படுத்தப்படுகிறது.

உதாரணம்:

Num வேரியபிள்_பெயர் = 10 ; Str மொழி = "தமிழி மொழி" ; print மொழி ;

தமிழ் கீவேர்ட் உதாரணம்:

எண் மதிப்பு = 42 ; வரி செய்தி = "வணக்கம்!" ;

3. கணித செயல்பாடுகள் (Math Engine)

எல்எல்விஎம் நேடிவ் ஆர்கிடெக்சர் கொண்டு கூட்டல் (+), கழித்தல் (-), பெருக்கல் (*) மற்றும் வகுத்தல் (/) செயல்பாடுகள் சிம்பல் டேபிளின் லோக்கல் ஸ்கோப் மாறாமல் துல்லியமாகச் செய்யப்படுகின்றன.

உதாரணம்:

Num முதல்_எண் = 150 ; Num இரண்டாம்_எண் = 50 ; Num விடை = முதல்_எண் - இரண்டாம்_எண் ; Num கூட்டல் = முதல்_எண் + இரண்டாம்_எண் ; Num பெருக்கல் = முதல்_எண் * இரண்டாம்_எண் ;

4. டெர்னரி ஆபரேட்டர் (Ternary Operator)

தமிழி மொழியில் இரண்டு வகையான டெர்னரி சிண்டாக்ஸ் சப்போர்ட் ஆகுது. LLVMBuildSelect API மூலம் CPU லெவலில் நேரடியாக இயங்குகிறது — தேவையற்ற மல்டி-லைன் if-else கிடையாது.

Style 1 — if/else சிண்டாக்ஸ்:

Num வேகம் = 95 ; Num எல்லை = 80 ; // கண்டிஷன் உண்மையானால் 1, இல்லையெனில் 0 Num எச்சரிக்கை = 1 if ( வேகம் > எல்லை ) else 0 ;

Style 2 — ? : சிண்டாக்ஸ்:

Num a = 10 ; Num b = 20 ; // a > b உண்மையானால் 100, இல்லையெனில் 999 Num variable = ( a > b ) ? 100 : 999 ;

5. சுழற்சிகள் (Loop Block)

for அல்லது தமிழ் கீவேர்ட் சு கொண்டு லூப்களை இயக்கலாம். தற்போது நேரடி எண்கள் மட்டுமே limit-ஆக சப்போர்ட் ஆகுது.

ஆட்டோ கவுண்டர் உதாரணம் (for):

for 5 { print i ; // 0 முதல் 4 வரை அச்சிடும் }

மேனுவல் கவுண்டர் உதாரணம் (சு keyword):

Num i = 1 ; சு 5 { print i ; i = i + 1 ; }

6. ஃபங்க்ஷன்கள் (Global Functions)

main பிளாக்கிற்கு வெளியே fun கீவேர்ட் கொண்டு தனியான லாஜிக் பிளாக்குகளை உருவாக்கலாம். return மூலம் மதிப்பை திரும்ப அனுப்பலாம்.

Return உள்ள Function:

fun கூட்டு_மையம் { Num x = 10 ; Num y = 20 ; return x + y ; }

Function Call — மாறிக்கு அசைன்:

main { Num ans = கூட்டு_மையம்() ; print ans ; }

7. கமெண்ட் லைன் (Comments)

கோடுல ஏதாவது குறிப்புகள் எழுதணும்னா டபுள் ஸ்லாஷ் (//) பயன்படுத்தலாம். parse_statement லெவல்லயே skip ஆகும் — கம்பைலரோட பெர்ஃபார்மன்ஸ் எந்த மாத்தமும் இல்லை.

உதாரணம்:

// இது ஒரு தமிழ் கமெண்ட் லைன் Num active = 1 ;

8. அச்சிடுதல் (Print Execution)

மாறிகள், எண்கள், கணித கோவைகள் அல்லது நேரடி ஸ்ட்ரிங் வாக்கியங்களை டெர்மினலில் அச்சிட print அல்லது அச்சிடு கீவேர்ட் பயன்படுத்தலாம்.

உதாரணம்:

print "வணக்கம் பிரபா!" ; print ( a + b ) ; print variable_name ; // தமிழ் alias: அச்சிடு "மாஸ் தமிழ்!" ;

9. நிரலின் ஒட்டுமொத்த வரைபடம் (Execution Architecture)

ஒரு தமிழி நிரல் எழுதும்போது இந்த 3 செக்போஸ்ட்டுகளும் வரிசையாக அமைய வேண்டும். fun பிளாக்குகள் முதலில், main நடுவில், footer இறுதியில்.

முழு நிரல் கட்டமைப்பு:

// செக்போஸ்ட் 1: எல்லா ஃபங்க்ஷன்களும் fun எனது_லாஜிக் { ... } // செக்போஸ்ட் 2: முதன்மை பிளாக் main { ... } // செக்போஸ்ட் 3: இறுதி பூட்டர் பிளாக் footer { ... }