fbpx
Wikipedia

Ezhil (programming language)

Ezhil, in Tamil language script (Tamil: எழில், romanized: Eḻil, lit.'beauty', Tamil pronunciation: [eɻil̪]), is a compact, open source, interpreted, programming language, originally designed to enable native-Tamil speaking students, K-12 age-group to learn computer programming, and enable learning numeracy and computing, outside of linguistic expertise in predominately English language-based computer systems.

Ezhil
Paradigminterpreted, imperative, structured
Designed byMuthiah Annamalai [1] at Google scholar
DeveloperIndependent/Freelance
First appeared2007
Stable release
version 0.99[2][3] / 23 August 2017; 6 years ago (2017-08-23)
Preview release
version 10rc0 / 14 March 2021; 3 years ago (2021-03-14)
Typing disciplinestrong, dynamic
OSLinux, Windows, Can be run in MacOS using Python's pip (package manager)
LicenseGPLv3
Filename extensions.n
Websiteezhillang.org
Major implementations
Ezhil-Lang
Influenced by
Logo, BASIC, Python

In the Ezhil programming language, Tamil keywords and language-grammar are chosen to easily enable the native Tamil speaker write programs in the Ezhil system. Ezhil allows easy representation of computer program closer to the Tamil language logical constructs equivalent to the conditional, branch and loop statements in modern English based programming languages. Ezhil is the first freely available programming language in the Tamil language and one of many known non-English-based programming languages. The language was officially announced in July 2009, while it has been developed since late 2007.

Description edit

The syntax of Ezhil is broadly similar to that of BASIC: blocks of code are run in sequential order, or via functions definitions, in a common control flow structures include while, and if. The termination of function block and statement blocks should have the termination keyword, similar to END in BASIC. Declarations are not necessary as Ezhil is a dynamic typed language, though type conversions must be made explicitly. Ezhil has built-in types for Numbers, Strings, Logicals and Lists.

Goals edit

  • Educational: Ezhil language is targeted toward K-12 students, and native-Tamil speakers, to learn elementary computer science principle
  • Intuitive: Ezhil language syntactic sugar is arranged to allow a sentence structure closer to the head final Tamil language, where the usual word order is SOV, in contrast to the SVO order of English.

Features edit

  • Arithmetic and logical operations, precedence indicated with parenthesis
  • Over 350+ builtins - many of them commonly found in the Python standard library
  • Procedural programming using functions, supporting recursion, call-by-value etc.
  • Ezhil as a language - it is not a macro-processor, and it is a complete compiler-front-end
  • Ezhil language has syntax highlighting support for Notepad++ and Emacs

Keywords edit

Conditional Statements are modeled after the IF-ELSEIF-ELSE statement . Loop control statements deriving from the WHILE statements are chosen. The function declaration syntax is kept simple. Details include the print statement, and the flow control statements below.

1.- : PRINT statement - பதிப்பி 2.- : BREAK statement - நிறுத்து  3.- : CONTINUE statement - தொடர் 4.- : RETURN statement - பின்கொடு  5.- : IF-ELSEIF-ELSE-statement - ஆனால், இல்லைஆனால், இல்லை 6.- : END-statement - முடி 7.- : FUNCTION-statement - நிரல்பாகம் 8.- : WHILE-statement - வரை 

Type system edit

Ezhil has four basic types, for Numbers, Strings, Logicals and Lists. It does not allow creation of new types, being a procedural language without structures or objects.

Language - control structures, function declarations and operators grammar edit

Standard language grammar for control structures for Ezhil language is given below,

 
Ezhil programs in Notepad++ syntax highlighting mode

If-else statement edit

@( CONDITION ) ஆனால்  #True branch இல்லை  #False branch முடி 

Loop statement edit

@( CONDITION ) வரை  #LOOP BODY முடி 

Operators edit

Standard logical operators, equality "==", inequality "!=", arithmetic comparison ">=", "<=",">","<" are supported. Arithmetic operators like "+","-","*","/" indicate standard plus, minus, product, division. Modulo is denoted by "%", and exponent by "^" characters.

Comments edit

'#' character denotes a single-line comment from the point to end-of-line. Multi-line comments are not defined.

Function declaration edit

நிரல்பாகம் [FUNCTION_NAME] ( ARGLIST )  [FUNCTION BODY] முடி 

Variable scoping, and visibility edit

Ezhil supports only call-by-value, and copies all data structures on function invocations. Globals are not supported. Recursion is supported and functions invocation copies variables.

Implementations edit

Current Ezhil implementation[4] is tightly integrated with the Python runtime. Ezhil interpreter is based on a readline-like CLI, while it can also be run in a batch mode. The interactive mode consumes programs as UTF-8 encoded text and builds a tree, using a compiler front-end, to build an AST, and executes it using the Python objects build from this AST.

Examples edit

Hello world edit

The following is a Hello world program in Ezhil:

# தமிழில் ஒரு எடுத்துக்காட்டு பதிப்பி "வணக்கம் Vijay!" பதிப்பி "உலகே வணக்கம்" பதிப்பி "******* நன்றி!. *******" exit() 

Guessing game edit

The following is a guessing game with 10-chances to guess a number between [1-100].

பதிப்பி "வணக்கம், விதி விளையாட்டுக்கு வருக!" # ஒவ்வொரு முறை ஒரு புதிய விதி தேவை seed( 1729 + 500*random() ) எண் = randint(1,100) # 10 வாய்ப்புகளை கொடுக்க வாய்ப்பு = 0 @( வாய்ப்பு < 10 ) வரை  பதிப்பி "நான் என் இதயத்தில் எண் [1-100] ஒன்று நினைக்கிறேன்"  பதிப்பி "நான் என்ன நினைக்கிறேன் என்று தெரியுமா?"  guess = உள்ளீடு ( "Guess/யூகிக்க >>" )  வாய்ப்பு = வாய்ப்பு + 1  #பதிப்பி ( எண் == guess )  #பதிப்பி எண்  @( எண் == guess ) ஆனால்  பதிப்பி "வாழ்த்துக்கள்! சரியான பதில்"  exit(0)  முடி  @( எண் < guess ) ஆனால்  பதிப்பி "உங்கள் உள்ளீடு அதிகமாக உள்ளது"  இல்லை  பதிப்பி "உங்கள் உள்ளீடு குறைத்து உள்ளது"  முடி  பதிப்பி "இன்னும் "  பதிப்பி ( 10 - வாய்ப்பு )  பதிப்பி "வாய்ப்புக்குள் மீதமுள்ளன முடி" முடி பதிப்பி "மன்னிக்கவும் : 10 வாய்ப்பு முடிக்க முடியவில்லை!" exit( -1 ) 
 
The following is a guessing game with 10-chances to guess a number between [1-100]

File I/O edit

# கோப்புப் பயன்பாடு fp = கோப்பை_திற( "names.txt","w") # நாம் ஒரு பட்டியலில் இருந்து வார்த்தைகளை பயன்படுத்த முடியும்  = ["இந்த","ஒரு","எழில்","தமிழ்","நிரலாக்க","மொழி","உதாரணம்"]  = 0 @(  < len() ) வரை  # நாம் ஒவ்வொரு வரியும் ஒரு எண் மற்றும் வார்த்தை சேர்க்க முடியும்  வரி = str() +" = "+ எடு( ,  ) + " \n"  பதிப்பி வரி  கோப்பை_எழுது( fp,வரி )   =  + 1 முடி #சேமித்து மூட கோப்பை_மூடு( fp ) # மறு திறந்த கோப்பு fp = கோப்பை_திற( "names.txt") # மற்றும் உள்ளடக்கங்களை படிக்கவும் வரிகள் = கோப்பை_படி(fp) # பயனருக்கு காண்பிக்க பதிப்பி வரிகள் # கோப்பு மூட கோப்பை_மூடு( fp ) # ஒரு எடிட்டர் கோப்பு திறக்க, "names.txt". emacs அல்லது Notepad பயன்படுத்தவும். 

Turtle graphics edit

The following is a Turtle graphics based example to draw the Yin-Yang symbols.

நிரல்பாகம் yin(radius, color1, color2)  #turtle_width(3)  turtle_color("black")  turtle_fill(True)  turtle_circle(radius/2., 180)  turtle_circle(radius, 180)  turtle_left(180)  turtle_circle( -1*radius/2.0 , 180 )  turtle_color(color1)  turtle_fill(True)  turtle_color(color2)  turtle_left(90)  turtle_up()  turtle_forward(radius*0.375)  turtle_right(90)  turtle_down()  turtle_circle(radius*0.125)  turtle_left(90)  turtle_fill(False)  turtle_up()  turtle_backward(radius*0.375)  turtle_down()  turtle_left(90) முடி நிரல்பாகம் main()  #turtle_reset()  yin(200, "white", "black")  yin(200, "black", "white")  turtle_ht()  pause( "Done! Hit enter to quit", 5) முடி main() 
 
The following is a Turtle graphics based example to draw the Yin-Yang symbols

Logo Ezhil edit

  • Logo for Ezhil language consists of interlaced letters of the Tamil language script, spelling out Ezhil - A Tamil programming language.

See also edit

References edit

  1. ^ "Muthiah Annamalai".
  2. ^ Python PIP repository
  3. ^ Ezhil-Programming Language on github
  4. ^ "Ezhil-Lang". 4 October 2021.
  1. Annamalai, Muthiah (28 Jul 2009). "Ezhil: A Tamil Programming Language". arXiv:0907.4960 [cs.PL]. Reference implementation of Ezhil programming language

External links edit

  • Official website
  • Ezhil-Language-Foundation on GitHub
  • Ezhil-Lang project on PIP Python repository

ezhil, programming, language, ezhil, tamil, language, script, tamil, எழ, romanized, eḻil, beauty, tamil, pronunciation, eɻil, compact, open, source, interpreted, programming, language, originally, designed, enable, native, tamil, speaking, students, group, lea. Ezhil in Tamil language script Tamil எழ ல romanized Eḻil lit beauty Tamil pronunciation eɻil is a compact open source interpreted programming language originally designed to enable native Tamil speaking students K 12 age group to learn computer programming and enable learning numeracy and computing outside of linguistic expertise in predominately English language based computer systems EzhilParadigminterpreted imperative structuredDesigned byMuthiah Annamalai 1 at Google scholarDeveloperIndependent FreelanceFirst appeared2007Stable releaseversion 0 99 2 3 23 August 2017 6 years ago 2017 08 23 Preview releaseversion 10rc0 14 March 2021 3 years ago 2021 03 14 Typing disciplinestrong dynamicOSLinux Windows Can be run in MacOS using Python s pip package manager LicenseGPLv3Filename extensions nWebsiteezhillang wbr orgMajor implementationsEzhil LangInfluenced byLogo BASIC Python In the Ezhil programming language Tamil keywords and language grammar are chosen to easily enable the native Tamil speaker write programs in the Ezhil system Ezhil allows easy representation of computer program closer to the Tamil language logical constructs equivalent to the conditional branch and loop statements in modern English based programming languages Ezhil is the first freely available programming language in the Tamil language and one of many known non English based programming languages The language was officially announced in July 2009 while it has been developed since late 2007 Contents 1 Description 1 1 Goals 1 2 Features 1 3 Keywords 1 4 Type system 2 Language control structures function declarations and operators grammar 2 1 If else statement 2 2 Loop statement 2 3 Operators 2 4 Comments 2 5 Function declaration 3 Variable scoping and visibility 4 Implementations 5 Examples 5 1 Hello world 5 2 Guessing game 5 3 File I O 5 4 Turtle graphics 6 Logo Ezhil 7 See also 8 References 9 External linksDescription editThe syntax of Ezhil is broadly similar to that of BASIC blocks of code are run in sequential order or via functions definitions in a common control flow structures include a href While loop html title While loop while a and a href Conditional programming html class mw redirect title Conditional programming if a The termination of function block and statement blocks should have the termination keyword similar to END in BASIC Declarations are not necessary as Ezhil is a dynamic typed language though type conversions must be made explicitly Ezhil has built in types for Numbers Strings Logicals and Lists Goals edit Educational Ezhil language is targeted toward K 12 students and native Tamil speakers to learn elementary computer science principle Intuitive Ezhil language syntactic sugar is arranged to allow a sentence structure closer to the head final Tamil language where the usual word order is SOV in contrast to the SVO order of English Features edit Arithmetic and logical operations precedence indicated with parenthesis Over 350 builtins many of them commonly found in the Python standard library Procedural programming using functions supporting recursion call by value etc Ezhil as a language it is not a macro processor and it is a complete compiler front end Ezhil language has syntax highlighting support for Notepad and Emacs Keywords edit Conditional Statements are modeled after the IF ELSEIF ELSE statement Loop control statements deriving from the WHILE statements are chosen The function declaration syntax is kept simple Details include the print statement and the flow control statements below 1 PRINT statement பத ப ப 2 BREAK statement ந ற த த 3 CONTINUE statement த டர 4 RETURN statement ப ன க ட 5 IF ELSEIF ELSE statement ஆன ல இல ல ஆன ல இல ல 6 END statement ம ட 7 FUNCTION statement ந ரல ப கம 8 WHILE statement வர Type system edit Ezhil has four basic types for Numbers Strings Logicals and Lists It does not allow creation of new types being a procedural language without structures or objects Language control structures function declarations and operators grammar editStandard language grammar for control structures for Ezhil language is given below nbsp Ezhil programs in Notepad syntax highlighting mode If else statement edit CONDITION ஆன ல True branch இல ல False branch ம ட Loop statement edit CONDITION வர LOOP BODY ம ட Operators edit Standard logical operators equality inequality arithmetic comparison gt lt gt lt are supported Arithmetic operators like indicate standard plus minus product division Modulo is denoted by and exponent by characters Comments edit character denotes a single line comment from the point to end of line Multi line comments are not defined Function declaration edit ந ரல ப கம FUNCTION NAME ARGLIST FUNCTION BODY ம ட Variable scoping and visibility editEzhil supports only call by value and copies all data structures on function invocations Globals are not supported Recursion is supported and functions invocation copies variables Implementations editCurrent Ezhil implementation 4 is tightly integrated with the Python runtime Ezhil interpreter is based on a readline like CLI while it can also be run in a batch mode The interactive mode consumes programs as UTF 8 encoded text and builds a tree using a compiler front end to build an AST and executes it using the Python objects build from this AST Examples editHello world edit The following is a Hello world program in Ezhil தம ழ ல ஒர எட த த க க ட ட பத ப ப வணக கம Vijay பத ப ப உலக வணக கம பத ப ப நன ற exit Guessing game edit The following is a guessing game with 10 chances to guess a number between 1 100 பத ப ப வணக கம வ த வ ள ய ட ட க க வர க ஒவ வ ர ம ற ஒர ப த ய வ த த வ seed 1729 500 random எண randint 1 100 10 வ ய ப ப கள க ட க க வ ய ப ப 0 வ ய ப ப lt 10 வர பத ப ப ந ன என இதயத த ல எண 1 100 ஒன ற ந ன க க ற ன பத ப ப ந ன என ன ந ன க க ற ன என ற த ர ய ம guess உள ள ட Guess ய க க க gt gt வ ய ப ப வ ய ப ப 1 பத ப ப எண guess பத ப ப எண எண guess ஆன ல பத ப ப வ ழ த த க கள சர ய ன பத ல exit 0 ம ட எண lt guess ஆன ல பத ப ப உங கள உள ள ட அத கம க உள ளத இல ல பத ப ப உங கள உள ள ட க ற த த உள ளத ம ட பத ப ப இன ன ம பத ப ப 10 வ ய ப ப பத ப ப வ ய ப ப க க ள ம தம ள ளன ம ட ம ட பத ப ப மன ன க கவ ம 10 வ ய ப ப ம ட க க ம ட யவ ல ல exit 1 nbsp The following is a guessing game with 10 chances to guess a number between 1 100 File I O edit க ப ப ப பயன ப ட fp க ப ப த ற names txt w ந ம ஒர பட ட யல ல இர ந த வ ர த த கள பயன பட த த ம ட ய ம எ இந த ஒர எழ ல தம ழ ந ரல க க ம ழ உத ரணம இ 0 இ lt len எ வர ந ம ஒவ வ ர வர ய ம ஒர எண மற ற ம வ ர த த ச ர க க ம ட ய ம வர str இ எட எ இ n பத ப ப வர க ப ப எழ த fp வர இ இ 1 ம ட ச ம த த ம ட க ப ப ம ட fp மற த றந த க ப ப fp க ப ப த ற names txt மற ற ம உள ளடக கங கள பட க கவ ம வர கள க ப ப பட fp பயனர க க க ண ப க க பத ப ப வர கள க ப ப ம ட க ப ப ம ட fp ஒர எட ட டர க ப ப த றக க names txt emacs அல லத Notepad பயன பட த தவ ம Turtle graphics edit The following is a Turtle graphics based example to draw the Yin Yang symbols ந ரல ப கம yin radius color1 color2 turtle width 3 turtle color black turtle fill True turtle circle radius 2 180 turtle circle radius 180 turtle left 180 turtle circle 1 radius 2 0 180 turtle color color1 turtle fill True turtle color color2 turtle left 90 turtle up turtle forward radius 0 375 turtle right 90 turtle down turtle circle radius 0 125 turtle left 90 turtle fill False turtle up turtle backward radius 0 375 turtle down turtle left 90 ம ட ந ரல ப கம main turtle reset yin 200 white black yin 200 black white turtle ht pause Done Hit enter to quit 5 ம ட main nbsp The following is a Turtle graphics based example to draw the Yin Yang symbolsLogo Ezhil editLogo for Ezhil language consists of interlaced letters of the Tamil language script spelling out Ezhil A Tamil programming language See also editComparison of programming languagesReferences edit Muthiah Annamalai Python PIP repository Ezhil Programming Language on github Ezhil Lang 4 October 2021 Annamalai Muthiah 28 Jul 2009 Ezhil A Tamil Programming Language arXiv 0907 4960 cs PL Reference implementation of Ezhil programming languageExternal links edit nbsp Wikimedia Commons has media related to Ezhil Official website Ezhil Language Foundation on GitHub Ezhil Lang project on PIP Python repository Retrieved from https en wikipedia org w index php title Ezhil programming language amp oldid 1213358502, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.