Summary: | 碩士 === 國立成功大學 === 資訊工程學系 === 86 === The main difference between parallelizing compilers and
conventionalcompilers is in the loop transformation of
sequential languages. In general, theprocess of loop
transformation includes dependence analysis, loop optimization,
measurement on the effect of loop parallelization, and parallel
code generation. The object-oriented software development
technology, because it encapsulates data structures and
operations into objects and utilizes somefacilities (
inheritance, polymorphism, dynamic binding) to increase
softwarereusability, has increased the productivity of software
for many applicationsunder the support of object libraries.
In this thesis we use the object-oriented methods and techniques
to studyobject-oriented dependence-analyzer construction for
parallelizing compilers.First, we study the front-end subsystem
which generates the loop structure and gets the features of the
processed loop. The logic for this sub-system is toanalyze the
syntax of input language based on objects, and then identify
theclasses included in the syntax. Next, we design an operation
flow for dependenceanalysis subsystem that includes two major
components called loop normalizer anddependence analyzer. We
investigate the included objects and their functions forthe two
subsystems, establish the classes for these objects, and use
them to forma class library. Experiment to test the
feasibility of building a dependence analyzer basedon the
existed objects shows that it is indeed feasible. This implies
that usingobject library associated with some compiler-compilers
such as Lex, Yacc, Bison,Flex, etc. the cost of developing
parallelizing compilers can be reducedsignificantly.
|