Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Programming Paradigms - Advanced Software Paradigms | CSCI 210, Assignments of Computer Science

Material Type: Assignment; Professor: Bellaachia; Class: Advanced Software Paradigms; Subject: Computer Science; University: George Washington University; Term: Unknown 1989;

Typology: Assignments

Pre 2010

Uploaded on 08/19/2009

koofers-user-xry
koofers-user-xry 🇺🇸

10 documents

1 / 11

Toggle sidebar

Related documents


Partial preview of the text

Download Programming Paradigms - Advanced Software Paradigms | CSCI 210 and more Assignments Computer Science in PDF only on Docsity! Programming Paradigms Programming languages • A Programming language is a notational system for describing tasks/computations in a machine and human readable form. • Most computer languages are designed to facilitate certain operations and not others: numerical computation, or text manipulation, or I/O. • More broadly, a computer language typically embodies a particular programming paradigm. Characteristics of a programming language: Every language has syntax and semantics: • Syntax: The syntax of a program is the form of its declarations, expressions, statements and program units. • Semantic: The semantic of a program is concerned with the meaning of its program. Abdelghani Bellaachia, Advanced Software Paradigms Page: 1 Which programming language? • Since a task can be solved in different ways (paradigms), the language used to describe the solution differs in abstractions, structures due to the way in which the problem is solved. • There is no theory that dictates the best paradigm to solve a particular problem. • Efforts by Sebesta in his Concepts of Programming Languages book: • He based his evaluation criteria on three factors and 9 characteristics. • The three criteria (R,W,R) are: Readability Writability Reliability Abdelghani Bellaachia, Advanced Software Paradigms Page: 2 • Maintainability o Factoring: The ability to group related features into a single unit. Use subroutines to group related computations units so they can be re-used in different parts of the application. o Locality: The ability to implement information hiding so that changes to a grouping (either control or data) are transparent. • Cost o Programmer training o Software creation o Compilation o Execution o Compiler cost o Poor reliability o Maintenance • Others: portability and generality Abdelghani Bellaachia, Advanced Software Paradigms Page: 5 Programming paradigms • The paradigms are not exclusive, but reflect the different emphasis of language designers. Most practical languages embody features of more than one paradigm. • Classification: Imperative/ Algorithmic Declarative Object-Oriented Functional Programming Logic Programming Algol Cobol PL/1 Ada C Modula-3 Lisp Haskell ML Miranda APL Prolog Smalltalk Simula C++ Java Imperative paradigms • It is based on commands that update variables in storage. The Latin word imperare means “to command”. • The language provides statements, such as assignment statements, which explicitly change the state of the memory of the computer. • This model closely matches the actual executions of computer and usually has high execution efficiency. Abdelghani Bellaachia, Advanced Software Paradigms Page: 6 • Many people also find the imperative paradigm to be a more natural way of expressing themselves. Abdelghani Bellaachia, Advanced Software Paradigms Page: 7 The Object-Oriented Paradigm • OO programming paradigm is not just a few new features added to a programming language, but it a new way of thinking about the process of decomposing problems and developing programming solutions • Alan Kay characterized the fundamental of OOP as follows: • Everything is modeled as object • Computation is performed by message passing: objects communicate with one another via message passing. • Every object is an instance of a class where a class represents a grouping of similar objects. • Inheritance: defines the relationships between classes. • The Object Oriented paradigm focuses on the objects that a program is representing, and on allowing them to exhibit "behavior". • Unlike imperative paradigm, where data are passive and procedures are active, in the O-O paradigm data is combined with procedures to give objects, which are thereby rendered active. Abdelghani Bellaachia, Advanced Software Paradigms Page: 10 Concurrent programming • Improve performance • Multiprogramming systems attempt to utilize resources that would otherwise be wasted, by running two or more jobs concurrently. • Multiaccess systems extend this principle, allowing many jobs to be run, each on behalf of a user at an interactive terminal. • Concurrency can be classified into: o Apparent concurrency: single processor (interleaved execution of concurrent tasks) o Real concurrency: multiprocessor environment • Issues: o How to synchronize the interactions among concurrently executing processes to maintain the internal data integrity. o Another problem is to schedule the racing processes for a limited set of shared resources. Abdelghani Bellaachia, Advanced Software Paradigms Page: 11
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved