algorithms, computer systems, and programming...
TRANSCRIPT
1/10/18
1
Algorithms, Computer Systems,andProgramming Languages
CSC121,IntroductiontoComputerProgramming
overview
• whatisacomputational process?• whatisanalgorithm?• whatisacomputer?• briefoverviewofcomputer organization• computer processingasadiscrete statemachine• assemblylanguageprogramming• high-level languageprogramming• thelandscapeofcomputational problems
ComputationalProcesses
• acomputational process denotes acollectionofrules, orasequence ofoperations ortransformations whereby some resultinginformation isderived from asetofinitial orgiven information and conditions.
Algorithm
• analgorithm isaplanfordirecting acomputational process.
• algorithms shouldsatisfytheseconditions– eachofthestepsmustbeclearly andpreciselydefined.
– eachstepmustbeeffective (fortheagentexecuting theprocess)
– thestepsmustbeorderedproperly– theprocessmustterminate atsomepoint
1/10/18
2
Devising anAlgorithm
• Creating analgorithm isaprocess that involvesthese considerations:a) what istheresult?(specifications forthetask,
process, answer,orproduct)b) what doIknow?(information thatisgivenor
input intothecomputational process)c) howdoIderive(a)from(b)?(modifications,
transformations, stepsrequired toproduce(a))
ComputerSystems (1)
• electronic• digital• programmable• automated
Today’s generationofcomputersystemsareautomated, programmable, electronicdigitalprocessingmachines.
ComputerSystems (2)
• data—symbolic representation ofinformation• process—asequence ofstatesduringwhichthedataaremodified inprescribed ways
• program—a setofinstructionsthatdirect theprocess
Acomputersystemisanelectronicdigital dataprocessingmachine.
ComputerSystems (3)
• software—programs– program—a setofinstructionsthatdirectaprocess
• hardware—devices thatmakeupthephysicalsystemofthecomputer
Acomputersystemiscomprisedbysoftware thatdirects theprocessingperformed byhardware.
1/10/18
3
Hardware
• Hardware denotes the devices that comprisethe computer system
Hardware
• processor– CPU– mainmemory
• secondary memory and I/Osubsystem– auxiliary memory– input/outputdevices
ProcessorSystem
main memorystoresbothdataandinstructionsusedforprocessing
centralprocessingunit:manages theinstruction-executioncycle
bus providesinterconnections
Instruction-ExecutionCycle
• fetching thenextinstruction
• decoding (orinterpreting) thatinstruction
• executingwhat theinstructionprescribes
1/10/18
4
13
Memory
• information (data) isstored inuniform-sizedunits
• each unit hasaunique address that identifies it• reading frommemory– copy data fromamemory location– non-destructive
• writing tomemory– moving and replacing data inamemory location– destructive
14
Secondary Memoryand I/O
• Secondary memory– nonvolatile storage– cheaper, mass storage
• Input/Output devices– input--translateshuman-readable formsofinformation tomachine-readable data
– output-- translates machine-readable data tohuman-readable forms
DiscreteStateMachine
Digitalcomputers...maybeclassifiedamongstthe'discretestatemachines.’Thesearethemachineswhichmovebysuddenjumpsorclicks fromonequitedefinitestatetoanother.Thesestatesaresufficientlydifferentforthepossibilityofconfusion betweenthemtobeignored.
Turing, “ComputingMachineryandIntelligence”(1951)
CapturingaDiscreteState
• thecurrentvaluesofanydata objectsspecified fortheprocess
• thestatus oftheprocessor– temporary valuesandflags storedthere
• thestatusofinputandoutputoperations• theaddressofthenextexecutableinstruction intheprogram
1/10/18
5
Software
• computer programsarecommonlycalledsoftware
• eachmachine instruction inaprogramtypicallycorresponds toatypeofoperation thatthecomputer’s processor canperform
• thesetofpossibleprocessor ormachineinstructions iscalledtheprocessor ormachinelanguage
AssemblyLanguage Programming
• assemblylanguageprogramscontainsymbolicinstructionsrepresentingelementsofsomemachinelanguageinstruction
• eachinstructiontypicallyhas– amnemonicfortheoperationcode
– literalsorlabelsfortheoperands
AssemblyLanguage Programming
• Someoperandsare literals– e.g.,
ADD3[ACCß ACC+3]whereACCdenotestheAccumulator
• Someoperandsare labels signifying indirection(indirectcodes)– e.g.,
ADDLOC1024[ACCß ACC+value(LOC1024)]
AssemblyLanguage Programming
• constants. literalsorvalues thatmaychangefromtime totime, butare fixedorstaticforthecurrentexecutionoftheprogram
• variables. thesedenote values thatare dynamic,that is,maychange inthecourseofprocessing
• pointers (handles). thesedenotevalues thataretheaddressofother locationscontainingvalues
Labelsmayfunctionas…
1/10/18
6
Assignments
• Putting adata valueinto memory iscalled(algorithmica lly) anassignment
• InPython (and most programming languages),it iswritten inthis form
ACCß 3
name =valuewhere name isasymboliclabel andvalue expressessomedatavalue
ConditionalProcessing
22
isthecapability oftheprocessortochoosebetweenalternative actionsbasedonevaluating currentdata
ConditionalProcessing
• unconditional branch (jump)—change theaddressofthenext instructiontotheoneindicated inthebranchinstruction
• conditional branch (jump)—if someconditionistrue, thenchange theaddressofthenextinstructiontotheone indicated inthebranchinstruction
…ismadepossible atthe processorlevelbybranchinstructions
ConditionalProcessing
…ismadepossibleattheprocessor levelbybranchinstructions
1/10/18
7
Subroutines
library program unitsthatcanbelinkedwiththemain program
AssemblyLanguage Programming
AssemblyProcess Review: Assembly Language Programming
• instructions havealow-level ofabstractionbecausetheymodeltheactualoperationsofthenativeprocessor
• instructions represent(nearly)a1–1relationwiththoseofthecorresponding machinelanguage
• assemblylanguageprogramsarenot portable• assemblylanguagesareconsidered low-levelprogramminglanguages
1/10/18
8
High-Level Programming Languages
• High-LevelLanguage(HLL)instructions aremoreabstract– HLL instructionsexpresshigher-orderoperations
• singleHLLinstructions substituteforasequenceoflow-levelmachinelanguageinstructions. Inshort, thereisa1–manyrelation betweenHLLinstructions andmachinelanguageinstructions
• HLLprogramsareportable tootherprocessors– providedasuitablemeans oftranslation
Advantages ofHigh-LevelProgramming Languages
• programmerisrelievedofmanyimplementation details inperformingtasks
• HLLsaredesignedtobemorecompatiblewith thewaywethink andsolveproblems
• HLLprogramscanbeadaptedmoreeasilyforavarietyofcomputersystemsandmodifiedmoreeasily fordifferentfunctions
• HLLprogramsaremoreconcise
Translating HLLPrograms
• interpreters—decodeandexecuteprogramsoneinstruction atatime– translationonthe fly– emulates theway theprocessorfunctions
• compilers—analyzeandtranslate theentire HLLsourceprogramtoproduce anexecutablemachinelanguageversion– likeaprepared text translation
ComputationalProblems: TheLandscape
• Somecomputational problemshavesolutions,butthesesolutionscannotbecomputedeffectivelybecausewe lackthepracticalmeans todoso– someproblemsmaybesolvablewhenwehavefasterprocessorsorgreatermemorycapacities
– forothers,wewillneverhavetheresourcestoeffectivelycompute themwithcurrentsolutionsoralgorithms
• Example: thetraveling salespersonproblem
1/10/18
9
ComputationalProblems: TheLandscape
• Thebrute-forcesolutionforthe traveling salespersonproblem(TSP)hasafactorialgrowth rate
• Computer scientistsoftendescribe thebehaviorofalgorithmsusinganotationcalled“BigO”– thisdenotestheupperboundfor theworst-caseperformance ofanalgorithm
– TSP=O(N!),forN cities(ornodes)
ComputationalProblems: TheLandscape
• Supposethatwehadhardware thatwascapableofanalyzingonemillion individualpathsortripspersecond.– N =10 solution<4seconds– N =100 solution=approximately1049 centuries
• Problemswithalgorithms like forTSParesaidtobeintractable
ComputationalProblems: TheLandscape
• there isanotherclassofproblems thatare notsolvable
• example:The HaltingProblem– Supposethatwecreatedaprogram thatcouldanalyzeanyotherprogram.
– Specifically,analyzeaninputprogramwithaspecificsetofinputdata
– Ourprogrammustbeabletodeterminewhethertheinputprogramwillhalt—i.e.,completeitstask
– Aneffectivesolutionhastwopossibilities:“Yes”,theinputprogram terminates or“No”, theinputprogram neverterminatesorhalts
ComputationalProblems: TheLandscape
• AlanTuringdemonstratedthattheHaltingProblemwasunsolvablein1936
• headedthegroupatBletchleyParkthatcrackedtheEnigmaMachine inWWII
• developedtheACE computerin1946
• introducedwhatisnowcalledthe“TuringTest”todeterminewhetheramachinecouldbeconsidered intelligent
1/10/18
10
Computational Problems: TheLandscape
• undecidable problems: problems forwhichthere canbenoeffectivealgorithm
• intractable problems: theseare decidablebuthavenopracticalalgorithmic solutions
• tractable problems: thesearebothdecidable andhavealgorithms thatare orwouldbepractical toimplement
review
• whatisacomputational process?• whatisanalgorithm?• whatisacomputer?• briefoverviewofcomputer organization• computer processingasadiscrete statemachine• assemblylanguageprogramming• high-level languageprogramming• thelandscapeofcomputational problems