தமிழில் நிரல் எழுது...INFITT தம ழ இ ணய ம ந ட ,...

40
INFITT தமி இைணய மாநா, 2017 | University of Toronto, Scarborough, Ontario, Canada. தமிழி நிர எழி மாழி படைற அணாமைல, Ph.D. San José, California [email protected]

Transcript of தமிழில் நிரல் எழுது...INFITT தம ழ இ ணய ம ந ட ,...

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    தமிழில் நிரல் எழுது எழில் ெமாழி பட்டைற

    முத்து அண்ணாமைல, Ph.D.San José, California

    [email protected]

    mailto:[email protected]

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    தமிழில் நிரல் எழுது எழில் ெமாழி பட்டைற

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    அைமப்பு : Contents

    1. எழில் கணினி ெமாழி என்றால் என்ன ?

    2. எப்படி எழில் ெமாழி ெபருவது ?

    3. அடிப்பைட நிரலாக்கல் பயிற்சி

    4. இைடேவைள

    5. குச்சி ஐஸ் ? ேகான் ஐஸ்?

    ெவளி ெசல்லும் வழி : Exit

    கழிப்பைர - restroom

    water/break room - குடிநீர், ஓய்விடம்

    கணிைம வரலாறு புதிர்கள்குலுக்கல் பரிசுகள்!!

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    படிவம் : Format

    ● Please ask any questions; − feel free to interrupt!

    ● Slides and code are available online− http://ezhillang.org/workshop/code/

    ● Give aways for participation− Pick a lucky token at beginning of game− பரிசுகள் உள்ளன - கவனியுங்கள்!

    http://ezhillang.org/workshop/code/

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    சுய விவரம் - About

    ● Muthu Annamalai− Live in “Silicon Valley” with my wife, work for

    semiconductor software company− Running Ezhil since 2007-8 period and

    open-source project since 2012

    ● Education− Ph.D. in optical engineering from UT-Arlington,

    Texas− B.Tech from REC Trichy, India

    ● Interests− Health, wellness, Science &

    Engineering/Optics, Software, Open-Source, Tamil, Reading, Sports, Biking …

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    படம் புதிர் - யார் இந்த நபர் ? Picture Quiz

    P(n)

    1 2 3 4 56

    7 8

    19 20 2221

    25 26 27 28

    23

    29 30

    24

    17 18161514

    13

    129

    10 11

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    எழில் என்னது ?

    ● தமிழ் கணினி நிரலாக்க ெமாழி ● எளிய ேயாசைன: "தமிழில் நிரல் எழுது!"

    ● தமிழில் கணினி/கணிைம கற்பித்தல் -கற்பதற்கான ெதாடக்க ெமாழி

    ● Python, C, C++/Java ேபான்ற பிற ெமாழிகைள புரிந்து ெகாள்ளக்கூடிய, நிைலைய மாணவர்கள் எட்டுவார்கள்

    ● Computer programming language in Tamil● Simple idea: “Write Code in Tamil”● Starting points for teaching computing in

    Tamil● Provide easy transition from interpreted,

    structured/imperative programming to other languages like Python, C++/Java, etc.

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    Glossary - விளக்கத் ெதாகுதி

    ● Program● Programming● Instruction/Cmd● Statement● Condition● Value● Variable● Error● Execute

    ● நிரல் ● நிரல்படுத்தல்

    ● கட்டைள

    ● வாக்கியம்

    ● நிபந்தைன

    ● மதிப்பு

    ● மாறி

    ● பிைழ/வழு● இயக்கு

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    ெபறுதல், நிறுவல் - Download, Installing

    ● Windows

    − Win64 package available for download : http://ezhillang.org/download.html

    − 70+MB package ready to use.

    ● Sourceforge.net downloads

    − Packages for available platforms● Linux (Fedora, Ubuntu) − Source packages available− Instructions follow at:− https://github.com/Ezhil-Language-Foundation/

    padai/fedora_bringup.sh − https://github.com/Ezhil-Language-Foundation/

    padai/ubuntu_bringup.sh− $ cd Ezhil-Lang/editor && python ./ezhuthi.py

    http://ezhillang.org/download.htmlhttps://github.com/Ezhil-Language-Foundation/padai/fedora_bringup.shhttps://github.com/Ezhil-Language-Foundation/padai/fedora_bringup.shhttps://github.com/Ezhil-Language-Foundation/padai/ubuntu_bringup.shhttps://github.com/Ezhil-Language-Foundation/padai/ubuntu_bringup.sh

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    Ezhil Handbook :எழில் ைகேயடு

    ● Android app – pending full-release● Companion App for Website● Includes content for Ezhil book, notes and

    examples● Open-source app available on Google Play

    storehttps://play.google.com/store/apps/details?id=com.ezhil.handbook

    https://play.google.com/store/apps/details?id=com.ezhil.handbook

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    எது எங்ேக ?

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    தமிழ் உள்ளடீு முைற: விைச பலைக தமிழ்99

    ம + உ = மு

    Tamil 99 keyboard in iPhone

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    படம் புதிர் - யார் இந்த நபர் ?

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    நிரல்படுத்துதல் - programming

    ● அல்ேகாரிதம் = ெசயல்முைற

    ● படிப்படியாக சிறுபிள்ைளக்கு ெசால்லிக்ெகாடுப்பது ேபால

    ● ெபயர் காரணம்

    ● உதாரணம் : இரு எண்கைள கூட்டல்

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    பாய்வுப்படம் : flowchart

    உறுப்புகள் உதாரணங்கள் 1, 2.

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    Glossary - விளக்கத் ெதாகுதி

    தரவைமப்பு வடிவங்கள்

    Array → அணி Set → கணம்Stack → அடுக்குHeap → குவிப்புDictionary → அைடவு, ெதாடர்புறு அணிlinked list → ெதாடர் பட்டியல், ெதாடர்circular list → வட்ட ெதாடர் பட்டியல்Graph → நுனி ஓரம் / முைன ஓரம் அைடவுQueue → முைற வரிைச, ேநர் வரிைசpriority queue → முன்னுரிைம வரிைச, முதர்சன வரிைசhash table → எண்குறி அைடவு, சுறுக்கு குறி அைடவுbinary tree → இரும மரம், இரு கிைள மரம்Ref: http://bit.ly/2vcbWar in http://ezhillang.blog

    https://ezhillang.blog/?s=data+structures

    http://bit.ly/2vcbWarhttp://ezhillang.blog/https://ezhillang.blog/?s=data+structures

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    Algorithms + data structures = Programs

    ● கணினி ேமைத நிக்லஸ் விரத்:

    − நிரல் என்பது தரவைமப்புகைளயும் ெசயல்முைறகைளயும் ெகாண்டது

    ● ெசயல்முைறகைள எந்த நிரலாக்கள் ெமாழிகளிலும் ெசயல்படுத்தலாம்!

    ● எழிலும் கூட!

    − காரணம் டூரிங் முழுைம

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    நிரல் : வணக்கம்

    ● # இது ஒரு எழில் தமிழ் நிரலாக்க ெமாழி உதாரணம்

    ● பதிப்பி "வணக்கம் தமிழகம்!"

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    நிரல் : சராசரி

    எண்1 = 10எண்2 = 6 கூட்டுெதாைக = எண்1 + எண்2எண்3 = கூட்டுெதாைக/ 2 பதிப்பி "சராசரி: ", எண்3

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    நிரல் : நிபந்தைன

    எண்1 = உள்ளடீு("எண் ஒன்ைற தாருங்கள்!")எண்2 = உள்ளடீு("எண் ஒன்ைற தாருங்கள்!") @( எண்1 > எண்2 ) ஆனால் பதிப்பி "ெபரியது : ", எண்1இல்ைலபதிப்பி "ெபரியது : ", எண்2முடி

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    நிரல் : மடக்கு வாக்கியம்

    எண்1 = 0எண்2 = int(உள்ளடீு("வாய்ப்பாடு வரிைச"))@( எண்1

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    இைடேவைள - 7 நிமிடம்!

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    நிரல் : நிரல்பாகம் ெசயல்பாடுகள்

    நிரல்பாகம் சராசரி(எண்1,எண்2)கூட்டுெதாைக = எண்1 + எண்2எண்3 = கூட்டுெதாைக/ 2பின்ெகாடு எண்3முடி

    எண்1 = 12எண்2 = 6பதிப்பி "சராசரி: ", சராசரி(எண்1,எண்2)

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    அந்தாதி ெசால் : ேமளதாளேம Palindrome detection

    ● not a plaindrome == ரேமஷ்

    ● not a plaindrome == கேணஷ்

    ● not a plaindrome == மேகஷ்

    ● not a plaindrome == காமாட்சி

    ● not a plaindrome == மீனாட்சி

    ● not a plaindrome == விசாலாட்சி

    அந்தாதி ெசாற்கைள கண்ெடடுத்து எப்படி ?● plaindrome == ேதயுேத● plaindrome == மாறுமா● plaindrome == வினவி● plaindrome == விகடகவி● palindrome == 2002

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    அந்தாதி ெசால் : ேமளதாளேம Palindrome detection

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    படம் புதிர் - யார் இந்த நபர் ?

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    தவறுதல் - வதறுதல்

    ● Anagrams ?−

    ● How to find it ?−

    ● What are your thoughts ?

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    Tamil anagrams 2/2

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    மீ.ேபா.மா - GCD கணக்கிடுதல்

    ● Calculating the GCD in EzhilLang. Syntax hilighting is included for reference. எழில் ெமாழியில் GCD கணிக்கும் நிரல் கிழ்காணலாம்

    ● The only control structure is a if statement (without a else part) here, and plain vanilla recursion; so you can guess which is which right, without translation!

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    குவிப்பு - Stack : 1/2

    ● First-in Last-out

    ● தினி ()● ேமல்எடு()

    ● உதாரணம்: ேபார்த்திக்கிட்டு படுத்துக்கான, ேபார்ைவைய எடுத்த பின் தான் எந்திரிக்கலாம்

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    குவிப்பு - Stack : 2/2

    நிரல்பாகம் குவிப்பு( ) ப = பட்டியல்() பின்ெகாடு பமுடிநிரல்பாகம் தினி( கு, மதிப்பு ) பின்இைண( கு, மதிப்பு )முடிநிரல்பாகம் ேமல்_எடு( கு ) மதிப்பு = எடு( கு, -1 ) ேமல்அழி(கு) பின்ெகாடு மதிப்புமுடி

    துைவ_கூைட = குவிப்பு()@( ["திங்கள்","ெசவ்வாய்","புதன்","வியாழன்","திங்கள்"] இல் நாள்) ஒவ்ெவான்றாக தினி( துைவ_கூைட, நாள் ) அச்சிடு( " -> "+ நாள் )முடி

    @( நீளம்( துைவ_கூைட) > 1 ) வைர அச்சிடு( ேமல்_எடு( துைவ_கூைட ) )முடிஉறுதிப்படுத்த( 1 == நீளம்( துைவ_கூைட) )

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    சதுரம் Square – LOGO : 1/2

    ● LOGO Turtle graphics

    ● முன்னாடி

    ● பின்னாடி

    ● வலது

    ● இடது

    ● எழுதுேகால்ேமேல

    ● எழுதுேகால்கிேழ

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    சதுரம் Square – LOGO : 2/2

    ● அேத சதுரம் ஆனால் ஒேர கட்டைள!

    ● மடக்கு கட்டைளயின் சமத்து - சாமர்த்தியம்

    ● இேத ேபால முக்ேகாணம், ஆறுமுக ேகாணம் ேபான்றவற்ைற வைரயலாமா ? எப்படி ?

    ● வட்டம் எப்படி வைரவது ?

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    நிரல் : வைரபடம் சுழற்சி

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    Rosetta code, Ezhil examples

    http://rosettacode.org/wiki/Category:Ezhil

    எழில் ஆல்பா 0.9 பரிேசாதைன ெவளியடீு; படம் - 177-எடுத்துக்காட்டு நிரல்கள் உள்ள "எழுதி" இயக்கி.

    http://rosettacode.org/wiki/Category:Ezhil

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    அடுத்த படிகள்

    ● ெதாடர்ந்து படியுங்கள்!

    ● எழில் உங்களுக்கு கணிைம கற்க உறுதுைணயாக இருக்கும்

    ● எழுதியில் 177 - உதாரணங்கள் வரிைசப்படுத்தி ைவக்கப்பட்டன; இயக்கி, மாற்றி, பயிலுங்கள்!

    ● "தமிழில் நிரல் எழுது" புத்தகம் வாசித்து பாருங்கள்!

    ● !! வாழ்க வளமுடன் !!

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    நன்றி : Thanks

    ● INFITT – 2017 மாநாடு குழு

    ● ேபராசிறியர் ெச. இரா. ெசல்வகுமார்

    ● இல்லத்து அரசி, குடும்பத்தினர்கள்

    ● Software: Twitter, Google, GitHub, Travis-CI, GTK, Python.

    ● Team Ezhil - எழில் குழு!

    த.சீனிவாசன்

    புவேனஷ் குமார்

    கிேரஸ்குமார் ராமராஜு

    நாக ெசாக்கநாதன்

    ஆ. அருண்ராம்

    க. கருணாகரன்

    சத்தியா நாராயணன் தமிழர

    சி

    ஜி. ஸ்ரீதர்

    [email protected]@ezhillanghttps://www.facebook.com/ezhillanghttp://ezhillang.org

    ெதாடர்புக்கு

    mailto:[email protected]://www.facebook.com/ezhillanghttp://ezhillang.org/

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    Backup slides

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    Ref: Tamil 99 Typing, Siva Dinakaran, Youtube video: https://www.youtube.com/watch?v=4dHLM84CrSc

    தமிழ் 99 விைச பலைக உள்ளடீு முைற

    https://www.youtube.com/watch?v=4dHLM84CrSc

  • INFITT தமிழ் இைணய மாநாடு, 2017 | University of Toronto, Scarborough, Ontario, Canada.

    ஒரு வடிவைமப்பாளர் வாழ்க்ைகயில் தினசரி தமிழ் பயன்படுத்த - Blockly