jagomart
digital resources
picture1_Programming Pdf 184252 | Programming Language Concepts


 158x       Filetype PDF       File size 0.53 MB       Source: www.cmi.ac.in


File: Programming Pdf 184252 | Programming Language Concepts
programming language concepts lecture notes madhavan mukund chennai mathematical institute 92 g n chetty road chennai 600 017 http www cmi ac in madhavan 2 contents i object oriented programming ...

icon picture PDF Filetype PDF | Posted on 01 Feb 2023 | 2 years ago
Partial capture of text on file.
            Programming Language Concepts:
                  Lecture Notes
                  Madhavan Mukund
               Chennai Mathematical Institute
                  92 G N Chetty Road
                  Chennai 600 017
              http://www.cmi.ac.in/˜madhavan
                          2
                Contents
                I    Object-oriented programming                                                                   7
                1 Data encapsulation with classes                                                                  9
                    1.1   Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   10
                    1.2   Data encapsulation (public and private)       . . . . . . . . . . . . . . . . . . . .   12
                    1.3   Static components     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   14
                    1.4   Constants (the attribute final) . . . . . . . . . . . . . . . . . . . . . . . . . .      16
                    1.5   Constructors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    17
                2 Java Interlude 1
                    Quick introduction to Java                                                                    21
                    2.1   Structure of a Java program . . . . . . . . . . . . . . . . . . . . . . . . . . .       21
                    2.2   Compiling and running Java programs . . . . . . . . . . . . . . . . . . . . .           22
                    2.3   Basic Java syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     23
                          2.3.1   Scalar variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    23
                          2.3.2   Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     24
                          2.3.3   Compound statements . . . . . . . . . . . . . . . . . . . . . . . . . .         24
                          2.3.4   Final note . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    27
                3 Subclasses and inheritance                                                                      29
                    3.1   Subclasses and superclasses     . . . . . . . . . . . . . . . . . . . . . . . . . . .   29
                    3.2   Inheritance polymorphism . . . . . . . . . . . . . . . . . . . . . . . . . . . .        31
                    3.3   Multiple inheritance    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   32
                    3.4   The Java class hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      33
                    3.5   Subtyping vs inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      36
                4 Abstract classes                                                                                37
                    4.1   Abstract Classes    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   37
                    4.2   Generic functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     39
                    4.3   Multiple inheritance and interfaces     . . . . . . . . . . . . . . . . . . . . . . .   40
                5 Interfaces: Applications                                                                        43
                    5.1   Callback functions    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   43
                    5.2   Iterators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   45
                                                                  3
                    5.3   Ports and interaction with “state” . . . . . . . . . . . . . . . . . . . . . . . .        51
                6 Java Interlude 2
                    Parameter passing, cloning, packages                                                            53
                    6.1   Parameter passing in Java . . . . . . . . . . . . . . . . . . . . . . . . . . . .         53
                    6.2   Cloning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       55
                    6.3   Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      56
                    6.4   The protected modifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . .           58
                II    Exception handling                                                                           59
                7 Exception handing                                                                                 61
                    7.1   Java’s try-catch blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . .         61
                    7.2   Cleaning up with finally . . . . . . . . . . . . . . . . . . . . . . . . . . . .          63
                    7.3   Customized exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .         63
                    7.4   A“cute” fact about finally         . . . . . . . . . . . . . . . . . . . . . . . . . .    65
                III     Event driven programming                                                                   67
                8 Event driven programming                                                                          69
                    8.1   Programming graphical user interfaces . . . . . . . . . . . . . . . . . . . . .           69
                    8.2   Some examples of event driven programming in Java            . . . . . . . . . . . . .    71
                          8.2.1   Abutton. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .        71
                          8.2.2   Three buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       75
                    8.3   The event queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       76
                    8.4   Custom events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       77
                IV Reflection                                                                                       81
                9 Reflection                                                                                         83
                V Concurrent programming                                                                           89
                10 Concurrent Programming                                                                           91
                    10.1 Race conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .        92
                    10.2 Protocols based on shared variables . . . . . . . . . . . . . . . . . . . . . . .          94
                    10.3 Programming primitives for mutual exclusion           . . . . . . . . . . . . . . . . .    96
                    10.4 Monitors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       97
                    10.5 Monitors in Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .        101
                    10.6 Java threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      104
                                                                   4
The words contained in this file might help you see if this file matches what you are looking for:

...Programming language concepts lecture notes madhavan mukund chennai mathematical institute g n chetty road http www cmi ac in contents i object oriented data encapsulation with classes public and private static components constants the attribute nal constructors java interlude quick introduction to structure of a program compiling running programs basic syntax scalar variables expressions compound statements final note subclasses inheritance superclasses polymorphism multiple class hierarchy subtyping vs abstract generic functions interfaces applications callback iterators ports interaction state parameter passing cloning packages protected modier ii exception handling handing s try catch blocks cleaning up finally customized exceptions cute fact about iii event driven graphical user some examples abutton three buttons queue custom events iv reection v concurrent race conditions protocols based on shared primitives for mutual exclusion monitors threads...

no reviews yet
Please Login to review.