Programavimo Kalbos INF 413 Vytauto Didžiojo universitetas Informatikos fakultetas Algirdas Deveikis vaidila.vdu.lt/~afalde
Atsiskaitymai Koliokviumas (17%), egzaminas (50%) → raštu galima naudotis paskaitų medžiaga, laboratorinis darbas (33%) → "Sveikų ir realių skaičių aritmetinių išraiškų ir funkcijų interpretatoriaus sukūrimas JLex ir JavaCUP įrankių pagalba“; (iš tikrųjų tai du sujungti darbai); iki semestro pabaigos, siųskite man į FC.
Kodėl reikia susipažinti su programavimo kalbomis? The limits of my language are the limits of my world. Wittgenstein Kodėl reikia susipažinti su programavimo kalbomis? Skirtingos kalbos pritaikytos spręsti skirtingo tipo uždavinius Žinant bendrus programavimo kalbų principus lengviau įsisavinti kaip atsirandančias naujoves, taip ir naujas kalbas 1. Kiekvieno tipo uždaviniams spręsti reikia parinkti tam tinkančią programavimo kalbą. Toks pasirinkimas galimas tik žinant daug kalbų. 2. Programavimo kalbos evoliucionuoja gana greitai. Atsiranda naujos kalbos. Programavimo kalbos vystosi žymia dalimi naudodamos įvairių tipų ankstesnių kalbų patirtį. Todėl kalbų žinojimas leidžia greičiau įsisavinti kaip atsirandančias naujoves palaikomose kalbose, taip ir naujas kalbas. 3. Programavimo kalbų rūšys labai skiriasi tarpusavyje. Jų žinojimas pakeičia programuotojo požiūrį į programavimą. Todėl kalbų žinojimas pakelia programuotojo kultūrą. 4. Prieš tolesnes programavimo kalbų teorijos studijas būtina susipažinti su pagrindines kalbų sritis atstovaujančiomis kalbomis. 5. Pats programavimo kalbomų mokymasis yra įdomus ir linksmas užsiėmimas. Course Motivation Increased capacity to express programming concepts Improved background for choosing appropriate languages Increased ability to learn new languages Increased ability to design new languages Why are programming languages the way they are? understand the underlying ideas of the main programming paradigms know more about the huge variety of programming languages that are available nowadays understand how the syntax and semantics of languages can be defined precisely. know how important features are supported in several modern programming languages. have a deeper understanding of the history and rationale behind languages Why learn more than one PL? Why learn more than one PL? • Each language paradigm encourages thinking about a problem in a particular manner – Finding a natural match between problem and PL • Somewhat different functionality supplied by different paradigms • Computer professionals must be multi-lingual – PLs change over time as computer architecture changes – Specific applications sometimes result in specialized PLs – Need to understand each PLs functionality and limitations – Also need to understand some things about PL implementation Kalbų žinojimas pakelia programavimo kultūrą Pats programavimo kalbų mokymasis yra įdomus ir linksmas užsiėmimas
Šnekamosios ir programavimo kalbos The purpose of language is simply to convey meaning. Confucius Šnekamosios ir programavimo kalbos Oxford English Dictionary turi 615,000 žodžių (1989), C++ yra tik 67 raktiniai žodžiai. Mūsų eros pradžioje buvo apie 10000 kalbų, šiuo metu aktyviai naudojama apie 4000 kalbų. Šiuo metu priskaičiuojama apie 8500 programavimo kalbų (http://hopl.murdoch.edu.au/). Plačiau naudojama apie 150 bendros paskirties programavimo kalbų. Tačiau atsiranda specializuotos, pavyzdžiui XSLT (W3, 1999) XML dokumentų apdorojimui. Programavimo kalbos žymiai paprastesnės nei šnekamosios. Nors bendros paskirties programavimo kalbų skaičius mažėja, tačiau didėja specialios paskirties kalbų (pavyzdžiui skrydžių valdymui...). We could say that an intellectual separation of concerns gave rise to the plethora of programming languages, similar to the way physical separation gave rise to thousands of natural languages in human history of the last 50,000 years. The number of general purpose programming languages used for serious applications is in fact decreasing. However, since computing reaches more aspects of society, new application areas are addressed by targeted programming languages. We can expect that this trend continues, and leads to the development of more and more special purpose programming languages (a typical example being XSLT for the processing of XML documents). Again, we can see clear parallels with natural languages, where special purpose "lingos" and "slangs" address the needs of particular user groups. While some Eskimo dialects have over six words for snow, Bengali has only a single word for frost and snow. Different needs result in different languages Different languages result in different ways of thinking Paradigm: a term for a way of exposing concepts and things.
A language that doesn't affect the way you think about programming, is not worth knowing. Turing Complete A programming language is Turing complete if all computational algorithms that are able to be performed, can be performed in that language. Theoretically all languages are the same (are Turing complete). Just like all bridges are the same (they connect a place with another).
Programavimo kalbų populiarumas http://www.tiobe.com/tpci.htm There are three kinds of lies: Lies, damned lies, and benchmarks.
Literatūra W. Pratt, V. Zelkowitz. Programming Languages, 4th Ed. Prentice Hall. 2001. R. Sebesta. Concepts of Programming Languages, 5th Ed. Addison Wesley. 2002. Молчанов А.Ю. Системное программное обеспечение. Питер. 2006, 396 с. (ISBN: 5-94723-562-5). Anton Eliëns. Principles of Object-Oriented Software Development, 2nd Ed. Addison Wesley. 2000.