Introduction: Programming Languages & Paradigms

Transcription

Fall 2012CSD Univ. of CreteIntroduction:Programming Languages & Paradigms1Fall 2012CSD Univ. of CreteProgramming Language Timeline FlowMatic 1955 ForTran 1956 ACM Language Committee John McCarthy MIT LISP 1958 CoBOL 1960 1972John Backus IBM AlgOL 1958 CGrace Hopper UNIVACCommittee on Data SystemsLanguagesBASIC 1964 John Kemeny & Thomas KurtzDartmouthPL/I 1964 IBM CommitteeSimula 1967 Norwegian Computing CenterKristen Nygaard & Ole-Johan DahlLogo 1968 Seymour Papert MITPascal 1970 Nicklaus Wirth Switzerland Dennis Ritchie & KennethThompson Bell LabsSmalltalk 1972 Alan Kay Xerox PARCADA 1981 DODObjective C 1985 Brad Cox Stepstone SystemsC 1986 Bjarne Stroustrup Bell LabsEiffel 1989 Bertrand Meyer FranceVisual BASIC 1990 MicrosoftDelphi 1995 BorlandObject CoBOL 1995 MicroFocusJava 1995 Sun Microsystems211

Fall 2012CSD Univ. of CreteProgramming Language History3CSD Univ. of CreteFall 2012Five Generations of Programming Languages First Machine Languages machinecodes Second Assembly Languages symbolic assemblers Third High Level Procedural Languages (machine independent) imperativelanguages Fourth Non-procedural Languages domain specific application generators Fifth Natural Languages Each generation is at a higher level ofabstraction422

Fall 2012CSD Univ. of CreteThe First Generation (1940s) In the beginning @ was the Stone Age: Machine Languages Binaryinstruction strings Introduced with the first programmable computer Hardware dependentI need to know:What is the instruction to load from memory?Where is purchase price stored?What is the instruction to multiply?What do I multiply by?What is the instruction to add from memory?What is the instruction to store back into memory?I need to calculate the total sales.The sales tax rate is 10%.To write this program, I'll multiply thepurchase price by the tax-rate and addthe purchase price to the result.I'll store the result in the total sales field.I need to:Load the purchase priceMultiply it by the sales taxAdd the purchase price to the resultStore the result in total priceState the problemTranslate into theinstruction setMachine 04CD007359Translate into machineoperation codesProgram entered and executed as5(op-codes)machine languageFall 2012CSD Univ. of CreteThe Second Generation (Early 1950s) Then we begin to study improvements: Assembly Languages 1-to-1substitution of mnemonics for machine language commandsDependent HardwareThe ASSEMBLER converts instructions to op-codes:What is the instruction to load from memory?Where is purchase price stored?What is the instruction to multiply?What do I multiply by?What is the instruction to add from memory?What is the instruction to store back into memory?I need to calculate the total sales.The sales tax rate is 10%.To write this program, I'll multiply thepurchase price by the tax-rate and addthe purchase price to the result.I'll store the result in the total sales field.I need to:Load the purchase priceMultiply it by the sales taxAdd the purchase price to the resultStore the result in total priceMachine LanguageAssembly LanguagePOPMOVSUBMOVMOVADDState the problemSIAX,[BX 03]AX,SIWORD PTR [TOT AMT],E0D7WORD PTR [CUR AMT],E1DB[TOT 4CD007359Program executed asmachine languageTranslate into theinstruction setTranslate into machineoperation codes(op-codes)633

Fall 2012CSD Univ. of CreteThe Second Generation (1950s)Virtual Language Source Code The invention of the CompilerMurray Hopper(Flowmatic) Each CPU has its own specificmachine language A program must betranslated into machinelanguage before it can beexecuted on a particulartype of CPULoad A From Total-SalesLoad B From Sales-TaxMultiply A, BStore C In Total-Sales toshPCUNIX7Fall 2012CSD Univ. of CreteThe Second Generation (1950s)Virtual Language Source Code Interpreters and Virtual MachineLanguages Speedcoding UNCOL Intermediaries between thestatements and operators of highlevel programming languages andthe register numbers andoperation codes of native machineprogramming languagesLoad A From Total-SalesLoad B From Sales-TaxMultiply A, BStore C In Total-SalesPsuedocodeCompilerVirtual MachineLanguageFileMacintosh InterpreterUNIX InterpreterPC Interpreter844

Fall 2012CSD Univ. of CreteThe Third Generation (1955-65) High-level Procedural Languages make programming easier FORTRAN,ALGOL, LISP, COBOL, BASIC, PL/IThe COMPILER translates:Load the purchase priceMultiply it by the sales taxAdd the purchase price to the resultStore the result in total priceState the problemHigh-Level LanguageMachine LanguageAssembly 120SI187E:0130AX,[BX 03]187E:0140AX,SI187E:0150WORD PTR [TOT AMT],E0D7187E:0160WORD PTR [CUR AMT],E1DB187E:0170[TOT 258CD3E8B8BE70019C3210DD1D104CD007359salesTax purchasePric * TAX RATE;totalSales purchasePrice salesTax;Program executed asmachine languageTranslate into theinstruction setTranslate into machineoperation codes(op-codes)9CSD Univ. of CreteFall 2012The Conventional Programming Process A compiler is a software tool which translates source code into a specific targetlanguage for a particular CPU type A linker combines several object programs eventually developed independently1055

Fall 2012CSD Univ. of CreteFourth Generation Languages (1980) Non-procedural Languages (problem-oriented) Userspecifies what is to be done not how it is to be accomplished Less user training is required Designed to solve specific problems Diverse Types of 4GLs Spreadsheet Languages Database Query Languages Decision Support Systems Statistics Simulation Optimization Decision Analysis Presentation Graphics Systems11Fall 2012CSD Univ. of CreteHow do Programming Languages Differ? Common Constructs: basicdata types (numbers,etc.); variables; expressions; statements; keywords; control constructs; procedures; comments; errors . Uncommon Constructs: typedeclarations;types (strings,arrays, matrices,.); sequential execution; concurrency constructs; packages/modules; objects; general functions; generics; modifiable state;. special1266

Fall 2012CSD Univ. of CreteLanguage Styles @ Procedural Languages Individualstatements FORTRAN, ALGOL60, ALGOL68, Cobol, Pascal, C, Ada Functional Languages When you tell the computer to do something it does it LISP, Scheme, CLOS, ML, Haskell Logic Languages Inference engine that drives things Prolog, GHC Object-oriented Languages Bring together data and operations Smalltalk, C , Eiffel, Sather, Python, Ada95, Java, OCAML13Fall 2012CSD Univ. of Crete@ and Programming felAda JavaC PROLOGGHCImperative(command driven)LogicalDeclarative(rule based)1477

Fall 2012CSD Univ. of CreteProgramming Paradigms A programming language is a problem-solving toolProcedural:program algorithms datagood for decompositionFunctional:program functions functionsgood for reasoningLogicprogramming:program facts rulesgood for searchingObject-oriented:program objects messagesgood for encapsulation Other styles and paradigms: blackboard, pipes and filters, constraints,lists,.15Fall 2012CSD Univ. of CreteProgramming Paradigms1688

Fall 2012CSD Univ. of CreteWhat is a Programming Paradigm ? A set of coherent abstractions used toeffectively model a problem/domainA mode of thinking aka a programmingmethodology17Fall 2012CSD Univ. of CreteWhat about Abstractions? The intellectual tool that allows us to deal with concepts apart fromparticular instances of those concepts (Fairley, 1985) An abstraction denotes the essential characteristics of an object thatdistinguish it from all other objects and thus provide crisply definedconceptual boundaries, relative to the perspective of the viewer.(Booch, 1991) Abstraction, as a process, denotes the extracting of the essentialdetails about an item, or a group of items, while ignoring theinessential details Abstraction, as an entity, denotes a model, a view or some otherfocused representation for an actual item (Berard, 1993) The separation of the logical properties of data or function from theirimplementation (Dale and Lily, 1995)1899

Fall 2012CSD Univ. of CreteWhat about Abstractions? In summary, abstraction allows us accessto the relevant information regarding aproblem/domain, and ignores theremainder Abstraction is a technique to manage,and cope with, the complexity of thetasks we perform The ability to model at the right level aproblem/domain, while ignore the rest The use of abstraction, both as a nounand a verb, allows us to control the level and amount of detail, communicate effectively withcustomers and users19Fall 2012CSD Univ. of CreteMechanisms of Abstraction Abstraction by parameterization abstracts from the identity of the databy replacing them with parameters Example: a function to square an integer Abstraction by specification abstracts from the implementation detailsto the behavior users can depend on. Related terms: contract, interface The history of PLs is a long road towards richer abstraction forms201010

Fall 2012CSD Univ. of CreteExamples of Abstractions in PLs Procedural (abstraction of a statement) allows us to introduce newoperations Using the name of a sequence of instructions in place of the sequenceof instructions Parameterization allows high level of flexibility in the performance ofoperations Data (abstraction of a data type) allows us to introduce new types of data A named collection that describes a data object Provides a logical reference to the data object without concern for theunderlying memory representation Control (abstraction of access details) allows us e.g., to iterate over itemswithout knowing how the items are stored or obtained A way of indicating the desired effect without establishing the actualcontrol mechanism Allows designers to model iteration (e.g., Iterator), concurrency, and21synchronizationFall 2012CSD Univ. of CreteExamples of Abstractions Proceduralint function search(ListTYPE inList; int item)double function square(int x)void function sort(ListTYPE ioList) Datapublic abstract class Employee implements Serializable{ private Name name;private Address address;private String ssn "999999999";private String gender "female";private String maritalStatus "single";} Control#('name' 32 (1/2)) do: [:value value printOn: Transcript]#(9 12 6 14 35 67 18) select: [:value value even]Iterator y x.iterator();while (y.hasNext()) examine(y.next());221111

Fall 2012CSD Univ. of CreteProgramming Methodologies & Abstraction sProgrammingLanguages ConstructsStructuredProgrammingExplicit ControlStructuresDo-while and other loopsBlocks and so forthModularProgrammingInformationHidingModules with well-definedinterfacesAbstract Data ed Data TypesObject-OrientedProgrammingReusingClasses, Inheritance,Software Artifacts Polymorphism23CSD Univ. of CreteFall 2012Conversional Programming (1950s) Execute one statementafter the other Uses GOTO to jump Single Entrance, SingleExit Subroutine (GOSUB) Provideda naturaldivision of labor Could be reused inother programs Elimination ofSpaghetti-code241212

Fall 2012CSD Univ. of CreteProcedure-Based Programming Only 4 programming constructs Sequence Selection Iteration Recursion Modularization25Fall 2012CSD Univ. of CreteStructured Programming (1965) Divide and Conquer Break large-scaleproblems into smallercomponents that areMainconstructedindependently A program is a collectionTask 1Task 2of procedures, eachcontaining a sequence ofinstructionsSub-Task 1.1 Sub-Task 1.2Task 3.Functional DecompositionSub-Task1.2.1261313

Fall 2012CSD Univ. of CreteStructured Programming Problems Structured programming has a serious limitation: It’srarely possible to anticipate the design of a completed systembefore it’s implemented The larger the system, the more restructuring takes place Software development had focused on the modularization of code datamoved around argument/parameter associations or data was global works okay for tiny programs Not so good when variables number in the hundreds27Fall 2012CSD Univ. of CreteDon’t use Global Variables Sharing data (global variables) is aviolation of modular programming All modules can access all globalvariables without any restriction No module can be developedand understood independently Global data are dangerous This makes all modulesdependent on one anotherCopyright: OOT A Managers' perspective, Dr. Taylor281414

Fall 2012CSD Univ. of CreteInformation Hiding An improvement: Giveeach procedure(module) it’s own localdata This data can only be“touched” by thatsingle subroutine Subroutines can bedesigned,implemented, andmaintained more easily Other necessary data ispassed amongst theprocedures viaargument/parameterassociations29Fall 2012CSD Univ. of CreteModularized Data Localize data inside themodules This makes modulesmore independent ofone another Local DataCopyright: OOT A Managers' perspective, Dr. Taylor301515

Fall 2012CSD Univ. of CreteData Outside of Programs Small programs require littleinput and output Large programs work with thesame data over and over again Inventory control systems accounting systems engineering design tools A program that accesses datastore outside of the program Store data in external filesCopyright: OOT A Managers' perspective, Dr. Taylor31Fall 2012CSD Univ. of CreteSharing Data Many people or programs mustaccess the same file data Requires a data basemanagement system(DBMS) Data protected by a DBMSCopyright: OOT A Managers' perspective, Dr. Taylor321616

Fall 2012CSD Univ. of CreteThe Procedural Programming Style Defines the world as ‘procedures’operating on ‘data’ procedureshave clearlydefined interfaces This approach doesn’t work wellin large systems The result is defectivesoftware that is difficult tomaintain Code reuse limited There is a better way !!!33Fall 2012CSD Univ. of CreteProcedural Programming: 70341717

Fall 2012CSD Univ. of CreteImperative Programming It is the oldest but still the dominant paradigm Itis based on commands that update variables held in storageand assignment commands constitute a simple but usefulabstraction from the memory fetch and update of machine instructionsets Imperative programming languages can be implemented veryefficiently Variables Why imperative paradigm still dominant? Itis related to the nature and purpose of programming What is a program? Programsare written to model real-world processes affecting realworld objects Imperative programs model such processes Variables model such objects35Fall 2012CSD Univ. of CreteObject-Oriented Programming361818

Fall 2012CSD Univ. of CreteThe Roots of Object-Oriented Programming37Fall 2012CSD Univ. of CreteObject-Oriented Programming Software Objects: software packet abstracting the salientbehavior and attributes of a real object into a softwarepackage that simulates the real object Well-constructed programs are built on a solid foundationusing previously-tested components Link data with procedures If object function/interfaceis clearly defined, thenobject implementationmay change at will OOP key concepts: Object Classes Encapsulation Inheritance Polymorphism381919

Fall 2012CSD Univ. of CreteWhat is Data Abstraction? focuses on the essential characteristics of some object which yieldsclearly defined boundaries It is relative to the perspective of the viewer39Fall 2012CSD Univ. of CreteWhat are Objects ? Real objects are such things as: Ferrari402020

Fall 2012CSD Univ. of CreteWhat are Objects ? Real objects are such things as: Greece41Fall 2012CSD Univ. of CreteWhat are Objects ? Real objects are such things as: Professor422121

Fall 2012CSD Univ. of CreteWhat are Objects ? Real objects are such things as: Versateller43Fall 2012CSD Univ. of CreteWhat are Objects ? Real objects are such things as: Things Places Persons SystemsFerrariGreeceProfessorVersateller442222

Fall 2012CSD Univ. of CreteWhat are Objects ? Real objects have attributes: Ferrari Greece Professor Versatellers Real objects also have behavior:Top SpeedPopulationCoursesAmount on Hand Ferrari Greece Professors Versatellers Ferrari Greece Professor VersatellersTop SpeedPopulationCoursesAmount on HandAccelerateTaxTeachesDispense CashAccelerateTaxTeachesDispense Cash45Fall 2012CSD Univ. of CreteTraditional RepresentationReal world entitiesdataprocedures Software Representation462323

Fall 2012CSD Univ. of CreteObject-Oriented RepresentationReal world dures:Software Representation47Fall 2012CSD Univ. of CreteA More Formal Definition An object is a concept, abstraction,or thing with sharp boundaries andmeaning for an application An object is something that has State one of the possibleconditions in which anobject may exist represents over time thecumulative results of itsbehaviour Behavior determines how an objectacts and reacts to requestsfrom other objects Identity distinguishes it from othersimilar objects, even if itsstate is identical to that ofanother object482424

Fall 2012CSD Univ. of CreteWhat is Encapsulation? compartmentalisation of structure and behaviour so that the details of anobject’s implementation are hiddenCSD Univ. of Crete49Fall 2012OOP Key Concepts: Encapsulation Attributes are encapsulated by the objectsbehavior You don't need to know how theengine works to drive an automobile A great deal of functionality is invisible Turna switch - radio comes ona pedal - car accelerates Press The better the design and the tighterthe integration with the state of anobject makes the object work better separates implementation from interface controlled access to data extends the built-in typesCopyright: OOT A Managers' perspective, Dr. Taylor allows for greater modularity502525

Fall 2012CSD Univ. of CreteSeparation of Responsibilitiesa Hire Car objectnewEngine(serial) We give an object responsibilityservice() We can provide two types ofhireroperations: Accessors Methods which return(state) information Transformers Methods which change theobject (state) informationhire(cust)avail?miles()clean()51Fall 2012CSD Univ. of CreteMore on bal variablesare encapsulatedin modules (nowcalled objects)modulemodulemodule OOP is a discipline that relies on objects to impose a modular structureon programs OOP is more securely founded in an imperative language that supportsthe concept of encapsulation522626

Fall 2012CSD Univ. of CreteWhat is a Class? a set of objects that share a common structure and behaviour every class has zero or more instances53Fall 2012CSD Univ. of CreteObject Classes A class is an abstraction in that it: Emphasizes Suppressesrelevant characteristicsother characteristics Classes are templates used tomanufacture objects (instances) Note that instance is a synonym ofobject Objects are similar allcars are similar (belong toclass Car) difference between a genericconcept and a particular instance(a Ferrari)Copyright: OOT A Managers' perspective, Dr. Taylor542727

Fall 2012CSD Univ. of CreteA More Formal Definition A class is a description of a group of objects with common properties(attributes), behavior (operations), relationships, and semantics Related to others by characteristicsEnginesTiresDrives on RoadsCARSSuperior handlingGood for getting dates55Fall 2012CSD Univ. of CreteInterpretation/Representation of Objects & ClassesInterpretation inthe real worldObjectClassRepresentation inthe computer programAn object represents anything An object has a unique identity,a state, and behaviorsin the real world that can bedistinctly identifiedA class represents a set ofobjects with similarcharacteristics and behaviors.These objects are calledinstance of the classA class characterizes thestructure of states andbehaviors that are sharedby all its instances562828

Fall 2012CSD Univ. of CreteObject Classes for C Programmers A class is similar to a C struct Every data object in C hastypedef struct { a name and data type (specifiedin definition)char* name; an address (its relative location inint age;memory)} Person; a size (number of bytes ofPerson alice;memory it occupies) alice is an instance of struct visibility (which parts of programPersoncan refer to it) In object-oriented programming lifetime (period during which italice is an object of class Personexists)Unlike scripting languages and Java,all C data objects have a fixed sizeover their lifetime57 except dynamically created objectsFall 2012CSD Univ. of CreteWhat is Inheritance? the ordering or ranking of class abstractions important similartraits are built in at high levels (engine, lights)things, work in a similar way (gas pedal on the right)582929

Fall 2012CSD Univ. of CreteOOP Key Concepts: InheritanceOBJECTSLANGUAGESPHYSICAL OBJECTSNUMBERSMACHINESVEHICLESCARS Inheritance allow classes to use parent classes behavior and structure improvesreliability and manageability allows code reusability enforces consistency of interfaces supports rapid software prototyping59Fall 2012CSD Univ. of CreteThe Concept of Generalization Class: Implicitly defines a set of objectsclassification aCar Car Set of all cars Generalization: Subset relation Truck CargeneralizationCarCara Mercedes carTruckTrucka Ford truck603030

Fall 2012CSD Univ. of CreteObject MessagesgreetingBankBalancecall bank An object-orientedprogram consists ofobjects interacting withother by aw 10061Fall 2012CSD Univ. of CreteObject Messages A message has these three parts: sender:the initiator of themessage receiver: the recipient of themessage arguments: data required by thereceiver Receiver determines the code to beexecuted Procedural languages:function name scopecode OO languages:message name receiving ]ReceiverObject623131

Fall 2012CSD Univ. of CreteObject Messages and Class Methods Methods represent an executable codethat is encapsulated in a class and isdesigned to operate on one or more dataattributes that are defined as part of theclass Methods implement the behavior of classobjects Users invoke the methods of aclass through messages A class specifies the actualimplementation of its methods Messages can adapt themselves to anappropriate environment mean different things to differentobjectsClass Nameoperations:attributes:63Fall 2012CSD Univ. of CreteOOP Key Concepts: Polymorphism Messages are polymorphic differentimplementations canbe hidden behind a commoninterface Accelerate command automobile train airplane Show command videoclip newspaper article program source code?643232

Fall 2012CSD Univ. of CreteWhat is an Interface? Interface formalize polymorphism Proper combination of polymorphismand information hiding enables us todesign objects that are interchangeableManufacture C(plug and play compatible)Manufacture B Exact meaning of the command ispackaged with the objectManufacture A Allows a simple command to be usedto get what we want with different(and future) objects Interface support “plug-and-play”functionalityCSD Univ. of Crete65Fall 2012Procedural Programming vs. Using PolymorphismFor each Item in Listif (Item.type is video)ShowVideo(Item);else if (Item.type is news)ShowNews(Item);else if (Item.type is code)ShowCode(Item);For each Item in ListShow(Item);663333

Fall 2012CSD Univ. of CreteWhat is Modularity? packages the abstractions into nice discrete units (components) whichare loosely coupled and cohesive67Fall 2012CSD Univ. of CreteWhat is a Component? A non-trivial, nearly independent, andreplaceable part of a system thatfulfills a clear function in the contextof a well-defined architecture A component may be Asource code component A run time component or An executable component DLL Component NameSource FileName EXE Executable Name Interfaces can be realized bycomponents683434

Fall 2012CSD Univ. of CreteWhy Reusable Components Design? Autonomya component/module should be anautonomous entity, so it could workanywhere Abstraction it should have a clear abstraction, soothers can easily understand it’sbehavior (know what to expect from it) Clear interfacing it should have a clear interface so itwill be easy to work with, and tomaintain Documentation & Naming without documentation and goodnaming for interface methods, no onewill understand how to use it 69Fall 2012CSD Univ. of CreteObject-Oriented Style of Design & Programming Three Keys to Object-OrientedTechnology Objects Messages Classesdataprocedures Translation for structuredprogrammers Variables Function Calls Data Typesdata:procedures:703535

Fall 2012CSD Univ. of CreteObject-Oriented Programming: HistoryFORTRANALGOL60CPLAda83ALGOL68BCPLCAda95C PythonEiffelSatherJavaSimula67Smalltalk577190Fall 2012CSD Univ. of CreteProcedural vs. Object Oriented Programming Procedural: Emphasizes Processes Datastructures are designed to fit processesand data structures are conceivedin solution space In procedural programming, the system ismodeled as a collection of procedures ProcessesProblem Space Object-Oriented: Emphasizes Objects Objectsare from the problem space They survive changes in functionality Interpretation of messages is by objects Objects are easier to classify than operations In object-oriented programming, the systemis modeled as a collection of interactingobjectsObjects723636

Fall 2012CSD Univ. of CreteThe Evolution of Software Design MethodsSoftware Data (Shapes) Functions (Colors)1st GenerationSpaghetti-Code2nd & 3rd Generation :functional decomposition4th Generationobject decompositionCSD Univ. of Crete73Fall 2012The Object Oriented Technology Mindset Traditionally, software was developedto satisfy a specific requirementsspecification A billing system could not be madeinto something else even if weresimilar Let the billing system handlemailings or ticklers Object Oriented Technology (OOT) hasa different mindset Instead of beginning with the task tobe performed, OO design deals withthe aspects of the real world thatneed to modeled in order to performthe task743737

Fall 2012CSD Univ. of CreteA Wish for Reuse Traditional software started from scratch easierthan converting old code-specific task Object Oriented Technology stressesreuse objects are the building blocks majority of time spent assemblingproven components: e.g,. GraphicalUser Interface (GUI) Borland's OWL, MS's MFC, or JavaSwing But reuse is hard to obtain! Extreme programmers don't strivefor it, they just do what they aregetting paid to do75Fall 2012CSD Univ. of CreteThe Promise of the Approach Object Oriented Technology offers techniques systems reusefor creating flexible, natural software modulesthat are much easier to adapt to new demandsshortens the development life cycle systemsare more understandable and maintainable easier to remember 50 real world classes rather than 500 functions! Basic corporate operations change more slowly than the informationneeds softwarebased on corporate models have a longer life span Do you believe it has been easy for corporations to switch to this newtechnology?763838

Fall 2012CSD Univ. of CreteA Simple Sales Order ExampleOrderProductShip via77Fall 2012CSD Univ. of CreteClass Diagram for the Sales IndividualItem 9

Fall 2012CSD Univ. of CreteEffect of Requirements ChangeSuppose you needa new type ofshipping vehicle dualItem ane79Fall 2012CSD Univ. of CreteBenefits of OOP in Software DevelopmentBefore OOP We should always strive to engineerour software to make it reliable andmaintainable Develop programs incrementally Don't need to understandeverything up front (includingthings you will never use) Avoids spaghetti code No need to start from scratchevery time As the complexity of a programincreases, its cost to develop andrevise grows exponentially OOP speeds development timecostcomplexityAfter OOPcostcomplexity804040

Languages Speedcoding UNCOL Intermediariesbetween the statements and operators of high-level programming languages and the register numbers and operation codes of native machine programming languages Load A From Total-Sales Load B From Sales-Tax Multiply A, B Store C In Total-Sales Virtu