Ang mga programming language ay isang foundational na aspeto ng computer science at programming. Binibigyang-daan nila ang mga tao na makipag-usap ng mga tagubilin sa mga computer. Ang mga programming language ay may iba't ibang uri at disenyo, bawat isa ay nagsisilbi sa iba't ibang layunin. Tuklasin ng araling ito ang mga pangunahing konsepto ng mga programming language, ang kanilang pagkakategorya, at mga halimbawa.
Sa kanilang kaibuturan, ang mga programming language ay mga hanay ng mga tagubilin na naiintindihan ng mga computer. Sinasabi ng mga tagubiling ito sa computer kung paano magsagawa ng mga partikular na gawain. Upang magawa ito nang epektibo, ang mga programming language ay nagbibigay ng syntax (mga panuntunan kung paano buuin ang mga tagubiling ito) at semantics (ang kahulugan sa likod ng mga tagubiling ito).
Ang mga programming language ay maaaring malawak na mauri sa tatlong pangunahing kategorya: mababang antas ng mga wika, mataas na antas ng mga wika, at scripting wika. Naghahain ang bawat kategorya ng iba't ibang layunin at naaayon sa iba't ibang paradigm sa programming.
Ang mga mababang antas ng wika ay mas malapit sa machine code, na isang hanay ng mga binary na tagubilin na direktang maipatupad ng processor ng isang computer. Ang dalawang pangunahing uri ng mababang antas ng mga wika ay ang wika ng pagpupulong at wika ng makina.
Assembly Language: Gumagamit ito ng mga mnemonic code at label upang kumatawan sa mga tagubilin sa antas ng makina. Ito ay bahagyang mas nababasa ng tao kaysa sa machine code ngunit nangangailangan pa rin ng malalim na pag-unawa sa hardware ng computer.
Machine Language: Ito ang pinakamababang antas ng wika, na binubuo ng binary code (0s at 1s) na direktang pinaandar ng processor.
Halimbawa:
Pagtuturo sa Wika ng Assembly: MOV A, B (Ang tagubiling ito ay naglilipat ng mga nilalaman ng rehistro B upang magrehistro A)
Ang mga high-level na programming language ay idinisenyo upang maging mas madaling mabasa ng tao at maalis ang karamihan sa kumplikadong nauugnay sa hardware ng computer. Pinapayagan nila ang mga programmer na magsulat ng mga tagubilin gamit ang mga pahayag na tulad ng Ingles, na pagkatapos ay isinalin sa machine code sa pamamagitan ng isang compiler o interpreter. Kabilang sa mga halimbawa ng mataas na antas ng mga wika ang Python, Java, C++, at JavaScript.
Halimbawa:
Python Code: print("Hello, World!") (Ipini-print ng statement na ito ang text na "Hello, World!" sa console)
Ang mga wika sa script ay isang uri ng mataas na antas ng programming language na karaniwang binibigyang kahulugan sa halip na pinagsama-sama. Kadalasang ginagamit ang mga ito para sa pag-automate ng mga gawain, pagbuo ng web, at paglikha ng dynamic na nilalaman sa mga website. Kasama sa mga halimbawa ang Python (ginamit din bilang isang scripting language), Perl, at Ruby.
Halimbawa:
Python Script: import os
os.listdir('.') (Inililista ng script na ito ang lahat ng file at direktoryo sa kasalukuyang direktoryo)
Ang mga programming paradigms ay isang paraan upang pag-uri-uriin ang mga programming language batay sa kanilang mga feature at ang istilo ng programming na kanilang hinihikayat. Kasama sa ilang karaniwang paradigm ang procedural, object-oriented, functional, at declarative programming.
Procedural Programming: Nakatuon ito sa pagsulat ng isang serye ng mga pamamaraan o function na gumagana sa data. Ang C ay isang kilalang halimbawa ng isang procedural language.
Object-Oriented Programming (OOP): Ang paradigm na ito ay batay sa konsepto ng "mga bagay," na naglalaman ng data at mga pamamaraan. Ang Java at Python ay mga halimbawa ng mga object-oriented na wika.
Functional Programming: Binibigyang-diin nito ang mga function na kumukuha ng mga input at gumagawa ng mga output nang hindi binabago ang estado. Ang Haskell at Scala ay mga halimbawa ng mga functional na wika.
Declarative Programming: Nakatuon ito sa logic ng computation nang hindi inilalarawan ang control flow nito. Ang SQL (para sa mga database ng query) ay isang halimbawa ng isang deklaratibong wika.
Ang mga programming language ay makabuluhang nagbago sa paglipas ng mga taon, mula sa mga unang wika ng pagpupulong hanggang sa mga moderno at mas abstract. Ang trend sa pagbuo ng programming language ay tila patungo sa pagtaas ng abstraction, kadalian ng paggamit, at versatility.
Ang mga kamakailang taon ay nakakita ng pagtaas ng mga domain-specific na wika (mga DSL) na idinisenyo para sa mga partikular na gawain, tulad ng SQL para sa mga query sa database at HTML para sa disenyo ng web page. Higit pa rito, dumarami ang pagbibigay-diin sa mga feature ng wika na sumusuporta sa kasabay at parallel na programming, habang ang mga application ay nagiging mas distributed at multi-threaded.
Ang mga programming language ay isang mahalagang tool sa larangan ng computer science at software development. Ang pag-unawa sa iba't ibang uri ng mga wika, ang kanilang mga kategorya, at mga paradigma ay makakatulong sa pagpili ng angkop na wika para sa mga partikular na gawain. Habang umuunlad ang teknolohiya, patuloy na mag-aangkop ang mga programming language, na nag-aalok ng mas makapangyarihan at mahusay na mga paraan upang makipag-usap sa mga computer.