650 11. āļĢāļŦāļąāļŠāđāļāļĢāļāļāļēāļĢ 11p12c602
āđāļĨāđāļāļĄāļĩāļāļĩ : āđāļāļĢāļ·āđāļāļāļĄāļ·āļāđāļĢāļĩāļĒāļāļĢāļđāđāđāļāļ·āđāļāļāļķāļāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāļŠāļģāļŦāļĢāļąāļāđāļāļĢāļ·āđāļāļāļŦāļĨāļēāļĒ
āļŦāļāđāļ§āļĒāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāļĒāđāļāđāļ āļēāļĐāļēāļāļĩ/āļāļĩāļāļĨāļąāļŠāļāļĨāļąāļŠ
LET ME C : a Learning Tool providing a Multiprocessor-programming
Environment based on C/C++
āđāļāļĢāđāļāļĢāļĄāđāļāļ·āđāļāļŠāđāļāđāļŠāļĢāļīāļĄāļāļēāļĢāđāļĢāļĩāļĒāļāļĢāļđāđ(āļāļąāļāļĻāļķāļāļĐāļē)
āļĢāļēāļĒāļāļēāļāļāļāļąāļāļŠāļĄāļāļđāļĢāļāđ
āđāļŠāļāļāļāđāļ
āļĻāļđāļāļĒāđāđāļāļāđāļāđāļĨāļĒāļĩāļāļīāđāļĨāđāļāļāļĢāļāļāļīāļāļŠāđāđāļĨāļ°āļāļāļĄāļāļīāļ§āđāļāļāļĢāđāđāļŦāđāļāļāļēāļāļī
āļŠāļģāļāļąāļāļāļēāļāļāļąāļāļāļēāļ§āļīāļāļĒāļēāļĻāļēāļŠāļāļĢāđāđāļĨāļ°āđāļāļāđāļāđāļĨāļĒāļĩāđāļŦāđāļāļāļēāļāļī
āļāļĢāļ°āļāļĢāļ§āļāļ§āļīāļāļĒāļēāļĻāļēāļŠāļāļĢāđāđāļĨāļ°āđāļāļāđāļāđāļĨāļĒāļĩ
āđāļāđāļĢāļąāļāļāļļāļāļāļļāļāļŦāļāļļāļāđāļāļĢāļāļāļēāļĢāļ§āļīāļāļąāļĒ āļāļąāļāļāļēāđāļĨāļ°āļ§āļīāļĻāļ§āļāļĢāļĢāļĄ
āđāļāļĢāļāļāļēāļĢāđāļāđāļāļāļąāļāļāļąāļāļāļēāđāļāļĢāđāļāļĢāļĄāļāļāļĄāļāļīāļ§āđāļāļāļĢāđāđāļŦāđāļāļāļĢāļ°āđāļāļĻāđāļāļĒ āļāļĢāļąāđāļāļāļĩāđ 11
āļāļĢāļ°āļāļģāļāļĩāļāļāļāļĢāļ°āļĄāļēāļ 2552
āđāļāļĒ
āļāļēāļāļŠāļēāļ§āļāļāļļāļĢāļāļē āļāļĩāļĒāļīāđāļ
āļāļēāļāļŠāļēāļ§āļāļļāļŠāļļāļĄāļē āļāļēāļāļąāļĄāļ āđ
āļāļ·āđāļāļāļēāļāļēāļĢāļĒāđāļāļĩāđāļāļĢāļķāļāļĐāļēāđāļāļĢāļāļāļēāļĢ āļāļēāļāļŠāļēāļ§āļ§āļĢāļ§āļĢāļĢāļ āļĄāļ°āđāļĢāļīāļāļŠāļīāļāļāļīāđ
āļŠāļāļēāļāļąāļāļāļēāļĢāļĻāļķāļāļĐāļē āļĄāļŦāļēāļ§āļīāļāļĒāļēāļĨāļąāļĒāļāļĢāļĢāļĄāļĻāļēāļŠāļāļĢāđ
2. I
āļāļīāļāļāļīāļāļĢāļĢāļĄāļāļĢāļ°āļāļēāļĻ (Acknowledgement)
āđāļāļĢāļāļāļēāļĢāđāļĨāđāļāļĄāļĩāļāļĩ āđāļāđāļĢāļąāļāļāļļāļāļŠāļāļąāļāļŠāļāļļāļāļāļēāļĢāļāļąāļāļāļēāđāļāļĢāļāļāļēāļĢāļāļēāļāļĻāļđāļāļĒāđāđāļāļāđāļāđāļĨāļĒāļĩāļāļīāđāļĨāđāļāļāļĢāļāļāļīāļāļŠāđāđāļĨāļ°
āļāļāļĄāļāļīāļ§āđāļāļāļĢāđāđāļŦāđāļāļāļēāļāļī āļŠāļģāļāļąāļāļāļēāļāļāļąāļāļāļēāļ§āļīāļāļĒāļēāļĻāļēāļŠāļāļĢāđāđāļĨāļ°āđāļāļāđāļāđāļĨāļĒāļĩāđāļŦāđāļāļāļēāļāļī āļāļĢāļ°āļāļĢāļ§āļāļ§āļīāļāļĒāļēāļĻāļēāļŠāļāļĢāđāđāļĨāļ°
āđāļāļāđāļāđāļĨāļĒāļĩ āđāļāđāļĢāļąāļāļāļļāļāļāļļāļāļŦāļāļļāļāđāļāļĢāļāļāļēāļĢāļāļēāļĢāđāļāđāļāļāļąāļāļāļąāļāļāļēāđāļāļĢāđāļāļĢāļĄāļāļāļĄāļāļīāļ§āđāļāļāļĢāđāđāļŦāđāļāļāļĢāļ°āđāļāļĻāđāļāļĒ āļāļĢāļąāđāļāļāļĩāđ 11
āļāļēāļāļĻāļđāļāļĒāđāđāļāļāđāļāđāļĨāļĒāļĩāļāļīāđāļĨāđāļāļāļĢāļāļāļīāļāļŠāđāđāļĨāļ°āļāļāļĄāļāļīāļ§āđāļāļāļĢāđāđāļŦāđāļāļāļēāļāļī āļŠāļģāļāļąāļāļāļēāļāļāļąāļāļāļēāļ§āļīāļāļĒāļēāļĻāļēāļŠāļāļĢāđāđāļĨāļ°āđāļāļāđāļāđāļĨāļĒāļĩ
āđāļŦāđāļāļāļēāļāļī āđāļĨāļ°āļŠāļģāļāļąāļāļāļēāļāļŠāđāļāđāļŠāļĢāļīāļĄāļāļļāļāļŠāļēāļŦāļāļĢāļĢāļĄāļāļāļāļāđāđāļ§āļĢāđāđāļŦāđāļāļāļēāļāļī āļāļĢāđāļāļĄāļĢāļ°āļāļļāļāļ·āđāļāđāļāļĢāļāļāļēāļĢāļāļĩāđāđāļāđāļĢāļąāļāļāļļāļāđāļ§āđāļāđāļ§āļĒ
āļāļāļāļāļāļāļĢāļ°āļāļļāļāļāļēāļāļēāļĢāļĒāđāļāļĩāđāļāļĢāļķāļāļĐāļēāļāļĩāđāđāļāđāđāļŦāđāļāļģāđāļāļ°āļāļģ āļāđāļāļāļīāļāđāļŦāđāļ āđāļĨāļ°āđāļŦāđāļāļ§āļēāļĄāļĢāļđāđāļāđāļēāļāđ āļĢāļ§āļĄāļāļąāđāļāđāļŦāđ
āļāļ§āļēāļĄāļāđāļ§āļĒāđāļŦāļĨāļ·āļāđāļāļāđāļēāļāļāđāļēāļāđ
āļāļāļāļāļāļāļļāļāļ āļēāļāļ āļēāļāļ§āļīāļāļēāļ§āļīāļāļĒāļēāļāļēāļĢāļāļāļĄāļāļīāļ§āđāļāļāļĢāđ āļāļāļ°āļ§āļīāļāļĒāļēāļĻāļēāļŠāļāļĢāđāđāļĨāļ°āđāļāļāđāļāđāļĨāļĒāļĩ
āļĄāļŦāļēāļ§āļīāļāļĒāļēāļĨāļąāļĒāļāļĢāļĢāļĄāļĻāļēāļŠāļāļĢāđ āļāļĩāđāđāļŦāđāļāđāļāļĄāļđāļĨ āļāđāļēāļ§āđāļāļĩāđāļĒāļ§āļāļąāļāđāļāļĢāļāļāļēāļĢāđāļāļĢāļāļāļēāļĢāđāļāđāļāļāļąāļāļāļąāļāļāļēāđāļāļĢāđāļāļĢāļĄāļāļāļĄāļāļīāļ§āđāļāļāļĢāđ
āđāļŦāđāļāļāļĢāļ°āđāļāļĻāđāļāļĒ
āđāļĨāļ°āļāļāļāļāļāļāļļāļāđāļāļ·āđāļāļāđ āđāļĨāļ°āļāļđāđāļāļĩāđāđāļāļĩāđāļĒāļ§āļāđāļāļāļāļļāļāđāļāđāļēāļāļāļĩāđāđāļŦāđāļāļģāļāļĢāļķāļāļĐāļē āđāļĨāļ°āđāļŦāđāļāļģāļāđāļ§āļĒāđāļŦāļĨāļ·āļāļāļĨāļāļāļāļēāļĢ
āļāļģāļāļēāļāļāļāļŠāļģāđāļĢāđāļāļĨāļļāļĨāđāļ§āļāđāļāđāļāđāļāđāļ§āļĒāļāļĩ
āļāļđāđāļāļąāļāļāļēāđāļāļĢāļāļāļēāļĢāļāļķāļāļāļāļāļĢāļēāļāļāļāļāļāļĢāļ°āļāļļāļāļĄāļē āļ āđāļāļāļēāļŠāļāļĩāđ
āļāļēāļāļŠāļēāļ§āļāļāļļāļĢāļāļē āļāļĩāļĒāļīāđāļ
āļāļēāļāļŠāļēāļ§āļāļļāļŠāļļāļĄāļē āļāļēāļāļąāļĄāļ āđ
3. II
āļāļāļāļąāļāļĒāđāļ
āļāļ§āļąāļāļāļĢāļĢāļĄāļāļāļāļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāļŦāļāđāļ§āļĒāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāļāļĄāļąāļĨāļāļīāļāļāļĢāđ āđāļāļ·āđāļāđāļāļīāđāļĄāļĻāļąāļāļĒāļ āļēāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨ
āđāļāļ āļēāļ§āļ°āļ§āļīāļāļĪāļāļīāļāļēāļĢāļāļēāļāđāļāļĨāļāļāļĨāļąāļāļāļēāļ āļāđāļāļāļģāļāļąāļāļāļāļāļ§āļīāļāļĪāļāļāļĨāļąāļāļāļēāļāđāļāđāļ āļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāļāļēāļĢ āļāļāļāđāļāļāļĄāļĩāļāđāļāļāļĩ
āļāđāļāđāļŠāļĩāļĒ āļŠāļĢāļĢāļāļāļ°āļāļēāļĢāļāļģāļāļēāļāđāļĨāļ°āļāļēāļĢāđāļāđāļāļĨāļąāļāļāļēāļāđāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨ āļāļķāļāđāļāđāļāđāļĢāļ·āđāļāļāļāļĩāđāļŠāļģāļāļąāļāļāļĩāđāļāļ°āļāđāļāļāļāļīāļāļēāļĢāļāļē
āđāļāļāđāļēāļāļŪāļēāļĢāđāļāđāļ§āļĢāđāļāđāļĄāļļāđāļāđāļŦāđāļāļ§āļēāļĄāļŠāļģāļāļąāļāļāļąāļāļāļēāļĢāļāļāļāđāļāļāđāļāļ·āđāļāļĨāļāļāļēāļĢāđāļāđāļāļĨāļąāļāļāļēāļāļāļĒāđāļēāļāļŠāļīāđāļāđāļāļĨāļ·āļāļ āļāļĒāđāļēāļāđāļĢāļāđāļāļēāļĄ
āđāļāļāļāļāļēāļāļāļāļāđāļāļĢāđāļāļĢāļĄāđāļĄāļāļĢāđāļāļ§āļĢāđāļŦāđāļāļ§āļēāļĄāļŠāļģāļāļąāļ āļāļąāļāļāļēāļĢāļāļāļāđāļāļāđāļāļĢāđāļāļĢāļĄāļāļĩāđāļĄāļĩāļŠāļĄāļāļāļ°āđāļāđāļāļĢāļāļāļēāļĄāļāļ§āļēāļĄ
āļāđāļāļāļāļēāļĢ āđāļĨāļ°āđāļāđāļāļĨāļąāļāļāļēāļāđāļŦāđāļāđāļāļĒāļāļĩāđāļŠāļļāļ āļāļēāļāļ§āļīāļāļąāļĒāļāļīāđāļāļāļĩāđāļĄāļļāđāļāļŦāļ§āļąāļāđāļŦāđāļāļđāđāđāļĢāļīāđāļĄāļāđāļāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāđāļāļīāļāļāļāļēāļ āđāļŦāđ
āļāļ§āļēāļĄāļŠāļģāļāļąāļāļāļąāđāļāļāļēāļĢāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāļāļĒāđāļēāļāļĄāļĩāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāđāļĨāļ°āļāļģāļāļķāļāļāļķāļāļāļēāļĢāļāļĢāļ°āļŦāļĒāļąāļāļāļĨāļąāļāļāļēāļ āđāļāļĒāđāļāđāđāļāļĢāļ·āđāļāļāļĄāļ·āļ
āļāļĩāđāļāļ·āđāļāļ§āđāļē LET ME C āļāļķāđāļāđāļāđāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāļąāļ§āļāļĒāđāļēāļāļāļĩāđāļāđāļ§āļĒāđāļŦāđ āļāļđāđāđāļĢāļīāđāļĄāļāđāļāļāļēāļĢāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāđāļāļīāļāļāļāļēāļāđāļāđāļĻāļķāļāļĐāļēāļāļēāļĢ
āđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāđāļāļīāļāļāļāļēāļāđāļĨāļ°āļāļĨāļāļĢāļ°āļāļ āļāļēāļāļāļēāļĢāđāļāđāļāļĨāļąāļāļāļēāļāļāļāļāđāļāļĢāđāļāļĢāļĄ
āļāļģāļŠāļģāļāļąāļ: āđāļāļĢāļ·āđāļāļāļĄāļ·āļāđāļĢāļĩāļĒāļāļĢāļđāđ, āļāļēāļĢāļāļģāļāļ§āļēāļĄāđāļāđāļēāđāļāđāļāļĢāđāļāļĢāļĄāđāļāļīāļāļāļāļēāļ, āļŠāļĄāļĢāļĢāļāļāļ°āļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāļīāļ
āļāļāļēāļ, āļāļēāļĢāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāļāļĩāđāļāļĢāļ°āļŦāļāļąāļāļāļķāļāļāļĨāļąāļāļāļēāļ
4. III
Abstract
Emerging of multicore architecture makes high-performance PCs available. Despite
that, the limitation caused by power crisis on such architecture has made the trade offs between
performance and power-aware computing ever more important. Hardware vendors have
focused their design on how to reduce the power consumption of components. However,
programmers also play an important role in designing a program which could satisfy
performance requirement within the minimum power consumption. This research work proposes
an approach for training novice parallel programmers to be both performance- and power-aware
by using a learning tool called LET-ME-C. We demonstrated that the tool could, not only
guide the programmers on how the codes could be parallelized, but also depict the impact of
noviceâs codes on performance and power consumption at prompt.
Keywords: Learning tool, Parallel Program Comprehension, Parallel Execution
performance, Power-aware programming
5. IV
āļāļāļāļģ
āļāļēāļĢāđāļāļĨāļĩāđāļĒāļāļĒāļļāļāļāļāļāļŦāļāđāļ§āļĒāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāđāļēāļŠāļđāđāļĒāļļāļāļŦāļĨāļēāļĒāļŦāļāđāļ§āļĒāļāļĢāļ°āļĄāļ§āļĨāļāļĨ (Multicore) āļŠāđāļāļāļĨāļāļĢāļ°āļāļ
āđāļŦāđāļāļđāđāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāļāļĢāļ°āļĒāļļāļāļāđāļāļ°āļāđāļāļāđāļāļĨāļĩāđāļĒāļāļ§āļīāļāļĩāļāļēāļĢāļāļąāļāļāļēāđāļāļĢāđāļāļĢāļĄāļāļēāļāđāļāļīāļāļĨāļģāļāļąāļāļĄāļēāđāļāđāļāđāļāļīāļāļāļāļēāļ āđāļāļ·āđāļāđāļŦāđ
āđāļāļĢāđāļāļĢāļĄāļŠāļēāļĄāļēāļĢāļāļāļķāļāļĻāļąāļāļĒāļ āļēāļāļŠāļđāļāļŠāļļāļāļāļāļāļŦāļāđāļ§āļĒāļāļĢāļ°āļĄāļ§āļĨāļāļĨāļāļļāļāļāļāļĢāđāđāļāļĢāļ°āļāļāļāļķāđāļāļĄāļēāđāļāđ āđāļāļĒāđāļŦāđāļĄāļĩāļāļ§āļēāļĄ
āļŠāļīāđāļāđāļāļĨāļ·āļāļāļāļĨāļąāļāļāļēāļāļāđāļāļĒāļāļĩāđāļŠāļļāļ āļŦāļāđāļ§āļĒāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāļāļŦāļĨāļēāļĒāļŦāļāđāļ§āļĒāļāļĢāļ°āļĄāļ§āļĨāļāļĨ āļāļĢāļ°āļĄāļ§āļĨāļāļĨāļāļĢāđāļāļĄāļāļąāļāđāļāđāļāļīāļ
āļāļāļēāļāđāļāļĒāļĢāļ§āļĄāļāļąāļāļāļģāļāļēāļāļĒāđāļāļĒāļāļķāđāļāđāļāđāļāļāļīāļŠāļĢāļ°āļāđāļāļāļąāļāļāļģāļāļēāļāļāļĢāđāļāļĄāļāļąāļāđāļ āļāļģāđāļŦāđāļāļēāļāđāļŠāļĢāđāļāđāļĢāđāļ§āļāļķāđāļ āļāļāļĄāļāļīāļ§āđāļāļāļĢāđāļŠāđāļ§āļ
āļāļļāļāļāļĨāļāļĩāđāļĄāļĩāļŦāļāđāļ§āļĒāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāļāļŦāļĨāļēāļĒāļŦāļāđāļ§āļĒāļāļĢāļ°āļĄāļ§āļĨāļāļĨ āļĄāļąāļāļāļ°āļĄāļĩāļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāđāļāļāđāļāđāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģāļĢāđāļ§āļĄ
āļāļĨāđāļēāļ§āļāļ·āļ āđāļĄāļ·āđāļāđāļāđāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāļāļāļāđāļāļĢāđāļāļĢāļĄāđāļāđāļāļāļēāļāļĒāđāļāļĒ āđāļāđāļĨāļ°āļŠāđāļ§āļāļāļēāļāļĒāđāļāļĒāļŠāļēāļĄāļēāļĢāļāđāļĢāļĩāļĒāļāđāļāđāļāļąāļ§āđāļāļĢāđāļ
āļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģāļĢāđāļ§āļĄāļāļąāļāđāļāđ āđāļāļĒāđāļĄāđāļāđāļāļāđāļāđāļāļēāļĢāļŠāļ·āđāļāļŠāļēāļĢāļāđāļāļĄāļđāļĨāļĢāļ°āļŦāļ§āđāļēāļāļŦāļāđāļ§āļĒāļāļĢāļ°āļĄāļ§āļĨāļāļĨ āļāļąāļāļāļąāđāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨ
āđāļāļīāļāļāļāļēāļāđāļāļĒāđāļāđāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģāļĢāđāļ§āļĄāļāļķāļāđāļāđāļĢāļąāļāļāļ§āļēāļĄāļāļīāļĒāļĄāđāļāļāļĨāļļāđāļĄāļāļđāđāļāļąāļāļāļēāđāļāļĢāđāļāļĢāļĄāđāļāļīāļāļāļāļēāļāļāļāđāļāļĢāļ·āđāļāļāļŦāļĨāļēāļĒ
āļŦāļāđāļ§āļĒāļāļĢāļ°āļĄāļ§āļĨāļāļĨ āļāļķāđāļāļāļđāđāļāļąāļāļāļēāđāļāļĢāđāļāļĢāļĄāļŠāđāļ§āļāđāļŦāļāđāļāļ°āđāļāđāđāļāđāļāļāđāļāđāļĄāļāļĩ (OpenMP) āđāļāđāļāļŠāđāļ§āļāļāđāļāļāļĢāļ°āļŠāļēāļ
āđāļāļĢāđāļāļĢāļĄāļāļĢāļ°āļĒāļļāļāļāđ (API) āđāļāļ·āđāļāļāļąāļāļāļēāđāļāļĢāđāļāļĢāļĄāđāļāļīāļāļāļāļēāļāļāļāđāļāļĢāļ·āđāļāļāļāļąāļāļāļĨāđāļēāļ§ āđāļāļĢāļēāļ°āđāļāđāļāļāđāļāđāļĄāļāļĩāļāļģāļāļ§āļĒāļāļ§āļēāļĄ
āļŠāļ°āļāļ§āļāđāļāļāļēāļĢāđāļāđāļāļāļēāļāļĒāđāļāļĒ āļāļ§āļāļāļļāļĄāļāļēāļĢāļŠāļ·āđāļāļŠāļēāļĢāļĢāļ°āļŦāļ§āđāļēāļāļāļēāļāļĒāđāļāļĒāđāļāļĒāđāļāđāļāļąāļ§āđāļāļĢāļĢāđāļ§āļĄāļāļąāļ āļĨāļąāļāļĐāļāļ°āļāļēāļĢāļŠāļ·āđāļāļŠāļēāļĢ
āđāļāļĒāđāļāđāļāļąāļ§āđāļāļĢāļĢāđāļ§āļĄāļāļąāļāļāļĩāđāļĄāļĩāļāļ§āļēāļĄāđāļāļĨāđāđāļāļĩāļĒāļāļāļąāļāđāļāļĢāđāļāļĢāļĄāđāļāļāļĨāļģāļāļąāļ āļāļķāļāļāļģāđāļŦāđāļāļēāļĢāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāļāļģāđāļāđāļĢāļ§āļāđāļĢāđāļ§
āļāļĒāđāļēāļāđāļĢāļāđāļāļēāļĄ āļāļąāđāļāļāļĩāđāļŦāļāđāļ§āļĒāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāļāļŦāļĨāļēāļĒāļŦāļāđāļ§āļĒāļāļĢāļ°āļĄāļ§āļĨāļāļĨ āļāļąāđāļāļāļĨāļēāļĒāđāļāđāļāđāļāļĨāļāļāļāļĢāđāļĄāļŦāļĨāļąāļāđāļāļāļēāļĢ
āļāļĢāļ°āļĄāļ§āļĨāļāļĨāļāļąāļāļāļļāļāļąāļ āđāļāđāļāļđāđāđāļĢāļĩāļĒāļāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāđāļāļ·āđāļāļāļāđāļāļĒāļąāļāđāļĄāđāļĄāļĩāđāļāļĢāļ·āđāļāļāļĄāļ·āļāđāļāļ·āđāļāļāđāļ§āļĒāļāļģāļāļ§āļēāļĄāđāļāđāļēāđāļāļāļēāļĢ
āļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāļīāļāļāļāļēāļ āļāļāļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāļĄāļąāļĨāļāļīāļāļāļĢāđ āļāļķāļāļāļģāđāļŦāđāļāļ§āļēāļĄāļĢāļđāđāļāļēāļāļāđāļēāļāļāļēāļĢāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāđāļāļīāļāļāļāļēāļāđāļāļĒ
āđāļāđāđāļāđāļāļāđāļāđāļĄāļāļĩ āļĒāļąāļāļāļāļāļģāļāļąāļāļāļĒāļđāđāđāļāļāļĨāļļāđāļĄāļāļđāđāđāļāļĩāđāļĒāļ§āļāļēāļāđāļāđāļēāļāļąāđāļ āļāļāļāļāļēāļāļāļĩāđāļāļđāđāđāļĢāļĩāļĒāļāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāđāļāļ·āđāļāļāļāđāļ āļĄāļąāļāļāļ°
āļĄāļāļāļāđāļēāļĄāļāļ§āļēāļĄāļŠāļģāļāļąāļāļāļāļāļāļēāļĢāļāļĢāļąāļāļāļĢāļļāļāļŠāļĄāļĢāļĢāļāļāļ°āļāļāļāđāļāļĢāđāļāļĢāļĄāđāļāļ·āđāļāļĨāļāļāļ§āļēāļĄāļŠāļīāđāļāđāļāļĨāļ·āļāļāļāļĨāļąāļāļāļēāļ āļāļķāļāđāļāđāļāđāļŦāļāļļ
āđāļŦāđ āđāļāļĢāđāļāļĢāļĄāļāļĩāđāļāļĨāļīāļāđāļāđāļāļēāļāļāļ°āļāļģāļāļēāļāļāļĢāļāļāļēāļĄāļāļ§āļēāļĄāļāđāļāļāļāļēāļĢ āđāļāđāđāļĄāđāđāļāđāļāļđāļāļāļĢāļąāļāđāļŦāđāđāļāđāļāļĨāļąāļāļāļēāļāļāļĒāđāļēāļāļāļĢāļ°āļŦāļĒāļąāļ
āļāļĩāđāļŠāļļāļ
āđāļāļ·āđāļāđāļāđāļāļāļēāļāđāļĨāļ·āļāļāļŠāļģāļŦāļĢāļąāļāļāļđāđāđāļĢāļĩāļĒāļāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāļāļĩāđāļāđāļāļāļāļēāļĢāļāļĢāļąāļāđāļāļ§āļāļēāļāļāļēāļĢāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāđāļāđāļēāļŠāļđāđ
āļĒāļļāļāļĄāļąāļĨāļāļīāļāļāļĢāđāļāđāļēāļĒāļāļķāđāļ āļĢāļēāļĒāļāļēāļāļŦāļąāļ§āļāđāļāļāļīāđāļĻāļĐāļāļāļąāļāļāļĩāđāļāļķāļāļāļģāđāļŠāļāļ āđāļāļĢāļāļāļēāļāđāļĨāđāļāļĄāļĩāļāļĩ āđāļāļĢāļāļāļēāļāļŠāļĢāđāļēāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāđāļĢāļĩāļĒāļāļĢāļđāđ
āđāļāļ·āđāļāļāļķāļāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāļŠāļģāļŦāļĢāļąāļāđāļāļĢāļ·āđāļāļāļŦāļĨāļēāļĒāļŦāļāđāļ§āļĒāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāļĒāđāļāđāļ āļēāļĐāļēāļāļĩ/āļāļĩāļāļĨāļąāļŠāļāļĨāļąāļŠ āđāļāļ·āđāļāđāļāđāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļ
āļāđāļ§āļĒāđāļāļāļēāļĢāđāļĢāļĩāļĒāļāļĢāļđāđ āđāļĨāļ°āļāļķāļāļāļāļāļēāļĢāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāļāļĩāđāļĄāļĩāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāļīāļāļāļāļēāļ āđāļāļĢāļēāļ°āđāļāļāļąāļāļāļļāļāļąāļāļāļēāļĢ
āļāļāļāđāļāļāļĢāļ°āļāļāļāļāļĄāļāļīāļ§āđāļāļāļĢāđāđāļĢāļīāđāļĄāđāļŦāđāļāļ§āļēāļĄāļŠāļāđāļāļāļąāļāļāļēāļĢāļāļāļāđāļāļāļŦāļāđāļ§āļĒāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļŦāđāļĄāļĩāļāļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļāļāđāļēāļ
āļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāļīāļāļāļāļēāļ āđāļāļ·āđāļāđāļāļīāđāļĄāļāļ§āļēāļĄāđāļĢāđāļ§āđāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨ āļāļāļāļāļēāļāļāļĩāđāđāļĨāđāļāļĄāļĩāļāļĩāļĒāļąāļāļĄāļĩāļāļēāļĢāđāļŠāļāļāļāļĨāļāđāļāļĄāļđāļĨ
āđāļāļĩāđāļĒāļ§āļāļąāļāļāļēāļĢāđāļāđāļāļ·āđāļāļāļĩāđāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģāļāļāļāđāļāļĢāđāļāļĢāļĄ āđāļŠāļāļāļāļĢāļīāļĄāļēāļāļāļĨāļąāļāļāļēāļāļāļĩāđāļŠāļđāļāđāļŠāļĩāļĒāđāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨ
āđāļāļ·āđāļāđāļŦāđāļāļđāđāđāļāđāļāļģāļāļķāļāļāļķāļāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļāļāļāđāļāļĢāđāļāļĢāļĄāļāļĩāđāđāļāđāļāļąāļāļāļēāļāļķāđāļ
6. V
āļŠāļēāļĢāļāļąāļ
āļāļīāļāļāļīāļāļĢāļĢāļĄāļāļĢāļ°āļāļēāļĻ (Acknowledgement) I
āļāļāļāļąāļāļĒāđāļ II
Abstract III
āļāļāļāļģ IV
āļŠāļēāļĢāļāļąāļ V
āļŠāļēāļĢāļāļąāļāļĢāļđāļ VI
āļ§āļąāļāļāļļāļāļĢāļ°āļŠāļāļāđāđāļĨāļ°āđāļāđāļēāļŦāļĄāļēāļĒ 1
- āļ§āļąāļāļāļļāļāļĢāļ°āļŠāļāļāđ 1
- āļāļĢāļ°āđāļĒāļāļāđ 2
āļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļāļāļāļāļēāļĢāļāļąāļāļāļē 3
- āđāļāļ·āđāļāđāļĢāļ·āđāļāļāļĒāđāļ 3
- āļāļĪāļĐāļāļĩāļŦāļĨāļąāļāļāļēāļĢāđāļĨāļ°āđāļāļāļāļīāļāļŦāļĢāļ·āļāđāļāļāđāļāđāļĨāļĒāļĩāļāļĩāđāđāļāđ 11
- āđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāļĩāđāđāļāđāđāļāļāļēāļĢāļāļąāļāļāļē 12
- āļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāļāļĩāđāđāļāđāļāļąāļāļāļēāđāļāđāļāļīāļāđāļāļāļāļīāļ 12
- āļāļāļāđāļāļāđāļĨāļ°āļāđāļāļāļģāļāļąāļāļāļāļāđāļāļĢāđāļāļĢāļĄ 13
- āļāļĨāļļāđāļĄāļāļđāđāđāļāđ 13
- āļāļĨāļāļēāļĢāļāļāļŠāļāļāđāļāļĢāđāļāļĢāļĄ 13
āđāļāļāļŠāļēāļĢāļāđāļēāļāļāļīāļ (Reference) 17
āļ āļēāļāļāļāļ§āļ (Appendix) 18
7. VI
āļŠāļēāļĢāļāļąāļāļĢāļđāļ
āļĢāļđāļāļāļĩāđ 1 āđāļāļĢāļ·āđāļāļāļĄāļ·āļāđāļĢāļĩāļĒāļāļĢāļđāđāđāļāļĨāļ§āļīāļŠ (ALVIS) āđāļāļāđāļŠāļāļāļāļĨāļāļāļāļāļĨāļąāļāļāļąāļāđāļāļĄāļąāļāļī â āļāļąāļāļāļĩāļāļĩāđāļāļđāđāđāļĢāļĩāļĒāļāļāļīāļĄāļāđāļāļīāļ
(Hundhausen āđāļĨāļ° Brown, 2007) 4
āļĢāļđāļāļāļĩāđ 2 āļāļąāļāļāđāļāđāļĄāđāļāļąāļāļŠāļīāļāđāļāđāļāļ·āđāļāļāļĢāļ°āļĄāļēāļāļāļēāļĢāđāļāđāļāļĨāļąāļāļāļēāļ (Xian, Lu, & Li, 2007) 5
āļĢāļđāļāļāļĩāđ 3 āļāļēāļĢāđāļāđāļāļĨāļąāļāļāļēāļāļāļāļāđāļāļĢāđāļāļĢāļĄāļāđāļēāļāđāļāļĨāđāļŠāļĩāđāļ§āļīāļāļĩ (Xian, Lu, & Li, 2007) 5
āļĢāļđāļāļāļĩāđ 4 āļ āļēāļ Visual Programming Environment (Tan & Cai, 1994) 6
āļĢāļđāļāļāļĩāđ 5 Scalable Graph āļāļ°āļāļđāļāđāļŠāļāļāđāļāđāļāļ āļēāļāļāļēāļĢāđāļāļāđāļāļĢāļāđāļāļĨāļąāļāļĐāļāļ°āļāļĢāļ§āļĒ 3 āļĄāļīāļāļī (Kim, Lom, & Jun,
2007) 7
āļĢāļđāļāļāļĩāđ 6 āđāļŠāļāļ Data dependence āđāļĨāļ° Graph 7
āļĢāļđāļāļāļĩāđ 7 Iteration Space āļāļāļ Array 1 āļĄāļīāļāļī 7
āļĢāļđāļāļāļĩāđ 9 āđāļŠāļāļ Iteration Vector 8
āļĢāļđāļāļāļĩāđ 10 Loop-independent dependence 8
āļĢāļđāļāļāļĩāđ 12 Distance Vector 8
āļĢāļđāļāļāļĩāđ 8 Iteration Space āļāļāļ Array 2 āļĄāļīāļāļī 8
āļĢāļđāļāļāļĩāđ 11 Loop-carried dependence 8
āļĢāļđāļāļāļĩāđ 15 āđāļŠāļāļ āļāļąāļ§āļāļĒāđāļēāļāļāļĩāđ 2 āļāļāļāļĨāļđāļāļāđāļāļīāļ loop carried dependency āļāļķāđāļāļŠāļēāļĄāļēāļĢāļāļāļģāļāļēāļĢāđāļāđāđāļ
dependency 9
āļĢāļđāļāļāļĩāđ 13 āđāļŠāļāļāļāļēāļĢāļ§āļīāđāļāļĢāļēāļ°āļŦāđ loop carried dependency 9
āļĢāļđāļāļāļĩāđ 14 āđāļŠāļāļ āļāļąāļ§āļāļĒāđāļēāļāļāļĩāđ 1 āļāļāļāļĨāļđāļāļāđāļāļīāļ loop carried dependency āļāļķāđāļāļŠāļēāļĄāļēāļĢāļāļāļģāļāļēāļĢāđāļāđāđāļ
dependency 9
āļĢāļđāļāļāļĩāđ 16 āđāļāļĢāđāļāļĢāļĄāđāļĨāđāļāļāļĩ (āļĪāļāļāļīāļĢāļāļāļąāļĒ, 2550) 10
āļĢāļđāļāļāļĩāđ 17 āđāļŠāļāļāļŦāļāđāļēāļāļāđāļāļ·āđāļāđāļĨāļ·āļāļāđāļāļĨāđ Setup 17
āļĢāļđāļāļāļĩāđ 18 āļŦāļāđāļēāļāļāļāļēāļĢāđāļĢāļīāđāļĄāļāļīāļāļāļąāđāļāđāļāļĢāđāļāļĢāļĄ 18
āļĢāļđāļāļāļĩāđ 19 āđāļĨāļ·āļāļāļāļĢāļ°āđāļ āļāļāļēāļĢāļāļīāļāļāļąāđāļāđāļāļĢāđāļāļĢāļĄ 18
āļĢāļđāļāļāļĩāđ 20 āđāļĢāļīāđāļĄāļāđāļāļāļēāļĢāļāļīāļāļāļąāđāļāđāļāļĢāđāļāļĢāļĄ 18
āļĢāļđāļāļāļĩāđ 21 āđāļŠāļāļāļŦāļāđāļēāļāļāļāļāļ°āļāļģāļāļēāļĢāļāļīāļāļāļąāđāļāđāļāļĢāđāļāļĢāļĄ 19
āļĢāļđāļāļāļĩāđ 22 āļŦāļāđāļēāļāļāđāļŠāļāļāļāļēāļĢāļĨāļāļāļ°āđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄ 19
āļĢāļđāļāļāļĩāđ 23 āļŦāļāđāļēāļāļāđāļŠāļāļāļāļēāļĢāđāļŠāļĢāđāļāļŠāļīāđāļāļāļēāļĢāļĨāļāđāļāļĢāđāļāļĢāļĄ 20
8. āļĢāļđāļāļāļĩāđ 24 āļŦāļāđāļēāļāļāđāļŠāļāļāļāļēāļĢāļāļģāļŦāļāļāļāļļāļāļŠāļĄāļāļąāļāļīāļāļāļāđāļāļĢāđāļāļĢāļĄ 20
āļĢāļđāļāļāļĩāđ 25 āđāļĨāļ·āļāļāļāļĢāļ°āđāļ āļāļāļēāļĢāļāļģāļŦāļāļāļāļļāļāļŠāļĄāļāļąāļāļīāļāļāļāđāļāļĢāđāļāļĢāļĄ 21
āļĢāļđāļāļāļĩāđ 26 āļāļģāļŦāļāļāļ§āļīāļāđāļāļ§āļŠāđāļāđāļāļāļāļąāđāļ 21
āļĢāļđāļāļāļĩāđ 27 āļāļģāļŦāļāļāļāđāļāļāļāļąāđāļāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļāļāļāđāļāļĢāđāļāļĢāļĄ 22
āļĢāļđāļāļāļĩāđ 28 āđāļŠāļāļāļŦāļāđāļēāļāļāļāļāļ°āļāļīāļāļāļąāđāļāļāļēāļĢāļāļģāļŦāļāļāļāļļāļāļŠāļĄāļāļąāļāļīāļāļāļāđāļāļĢāđāļāļĢāļĄ 23
āļĢāļđāļāļāļĩāđ 29 āđāļŠāļĢāđāļāļŠāļīāđāļāļāļēāļĢāļāļģāļŦāļāļāļāļļāļāļŠāļĄāļāļąāļāļīāļāļāļāđāļāļĢāđāļāļĢāļĄ 23
āļĢāļđāļāļāļĩāđ 30 āđāļŠāļāļāļŦāļāđāļēāļāļāđāļāļ·āđāļāđāļĨāļ·āļāļāđāļāļĨāđ jre-6u3-windows-i586-p-s.exe 24
āļĢāļđāļāļāļĩāđ 31 āđāļŠāļāļāļŦāļāđāļēāļāļāđāļŦāđāļĒāļāļĄāļĢāļąāļāđāļāļ·āđāļāļāđāļāļĨāļīāļāļŠāļīāļāļāļīāđāļāļāļāđāļāļĢāđāļāļĢāļĄ 25
āļĢāļđāļāļāļĩāđ 32 āđāļŠāļāļāļŦāļāđāļēāļāļāļāļāļ°āļāļģāļāļēāļĢāļāļīāļāļāļąāđāļāđāļāļĢāđāļāļĢāļĄ 25
āļĢāļđāļāļāļĩāđ 33 āđāļŠāļāļāļŦāļāđāļēāļāļāđāļŠāļĢāđāļāļŠāļīāđāļāļāļēāļĢāļāļīāļāļāļąāđāļāđāļāļĢāđāļāļĢāļĄ 26
āļĢāļđāļāļāļĩāđ 34 āļāļģāđāļāļĨāđ letmec_beta1 āđāļāļ§āļēāļāļĒāļąāļāļāļĩāđāļāļĩāđāļāđāļāļāļāļēāļĢ 27
āļĢāļđāļāļāļĩāđ 35 āļ āļēāļāļ āļēāļĒāđāļāđāļāļĨāđ letmec_beta1 27
āļĢāļđāļāļāļĩāđ 36 āļ āļēāļ Logo āļāļāļāđāļĨāđāļāļĄāļĩāļāļĩ 28
āļĢāļđāļāļāļĩāđ 37 āļ āļēāļāđāļāļĢāđāļāļĢāļĄāđāļĨāđāļāļĄāļĩāļāļĩ 28
āļĢāļđāļāļāļĩāđ 38 āļ āļēāļ Open file āđāļāļ·āđāļāđāļāļīāļāđāļāļĨāđ 29
āļĢāļđāļāļāļĩāđ 39 āļ āļēāļāļāļēāļĢāđāļāļīāļāđāļāļĨāđ 29
āļĢāļđāļāļāļĩāđ 40 āļ āļēāļāđāļŠāļāļāđāļāļĨāđ test.cpp 30
āļĢāļđāļāļāļĩāđ 41 āļ āļēāļāđāļŠāļāļāļāļēāļĢāđāļĨāļ·āļāļāļāļģāļŠāļąāđāļ āļāļēāļĢ Run āđāļāļĢāđāļāļĢāļĄ 30
āļĢāļđāļāļāļĩāđ 42 āļ āļēāļāđāļŠāļāļāļāļēāļĢ Run āđāļāļĢāđāļāļĢāļĄ 31
āļĢāļđāļāļāļĩāđ 43 āļ āļēāļāđāļŠāļāļ Execution time āđāļĨāļ° Instruction count 31
āļĢāļđāļāļāļĩāđ 44 āļ āļēāļāđāļŠāļāļāļāļēāļĢāđāļĨāļ·āļāļ āļĢāļļāđāļāļāļāļ Processor āđāļĨāļ°āļāļ·āđāļāļāļāļāļĢāļļāđāļ āļāļāļ Processor 32
āļĢāļđāļāļāļĩāđ 45 āļ āļēāļāđāļŠāļāļāļāļēāļĢāļĒāļĩāļāļĒāļąāļāļāļēāļĢāđāļĨāļ·āļāļ Processor āđāļĨāļ°āļāļēāļĢāđāļāļĨāļĩāļĒāļāđāļāļĨāļāļāļāļ Ideal Time 32
VII
9. 1
āļ§āļąāļāļāļļāļāļĢāļ°āļŠāļāļāđāđāļĨāļ°āđāļāđāļēāļŦāļĄāļēāļĒ
āđāļĨāđāļāļĄāļĩāļāļĩāđāļāđāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāđāļ§āļĒāļŠāļāļāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāđāļāļāļāļāļēāļ (Parallel Programming) āļāļĩāđāļŠāđāļāđāļŠāļĢāļīāļĄāđāļŦāđ
āļāļđāđāđāļĢāļĩāļĒāļāļāļĢāļ°āļŦāļāļąāļāļāļķāļāļāļ§āļēāļĄāļŠāļģāļāļąāļāļāļāļāļāļēāļĢāļāļāļāđāļāļāđāļāļĢāđāļāļĢāļĄāļāđāļāļāļ§āļēāļĄāļŠāļīāđāļāđāļāļĨāļ·āļāļāļāļĨāļąāļāļāļēāļ āļāļđāđāļāļąāļāļāļēāļāļķāļāļĄāļĩ
āđāļāļ§āļāļēāļāđāļāļāļēāļĢāļāļąāļāļāļēāđāļāļĢāđāļāļĢāļĄāđāļĨāđāļāļĄāļĩāļāļĩāļāļķāđāļāđāļāļ·āđāļāđāļāđāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāđāļ§āļĒāđāļāļāļēāļĢāđāļĢāļĩāļĒāļāļĢāļđāđ āđāļĨāļ°āļāļķāļāļāļāļāļēāļĢāđāļāļĩāļĒāļ
āđāļāļĢāđāļāļĢāļĄāļāļĩāđāļĄāļĩāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāļīāļāļāļāļēāļ āđāļāļĢāļēāļ°āđāļāļāļąāļāļāļļāļāļąāļāļāļēāļĢāļāļāļāđāļāļāļĢāļ°āļāļāļāļāļĄāļāļīāļ§āđāļāļāļĢāđāđāļĢāļīāđāļĄāđāļŦāđāļāļ§āļēāļĄāļŠāļāđāļ
āļāļąāļāļāļēāļĢāļāļāļāđāļāļāļŦāļāđāļ§āļĒāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļŦāđāļĄāļĩāļāļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļāļāđāļēāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāļīāļāļāļāļēāļ āđāļāļ·āđāļāđāļāļīāđāļĄāļāļ§āļēāļĄāđāļĢāđāļ§āđāļ
āļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨ āļāļāļāļāļēāļāļāļĩāđāđāļĨāđāļāļĄāļĩāļāļĩāļĒāļąāļāļĄāļĩāļāļēāļĢāđāļŠāļāļāļāļĨāļāđāļāļĄāļđāļĨāđāļāļĩāđāļĒāļ§āļāļąāļāļāļēāļĢāđāļāđāļāļ·āđāļāļāļĩāđāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģāļāļāļāđāļāļĢāđāļāļĢāļĄ
āđāļŠāļāļāļāļĢāļīāļĄāļēāļāļāļĨāļąāļāļāļēāļāļāļĩāđāļŠāļđāļāđāļŠāļĩāļĒāđāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨ āđāļāļ·āđāļāđāļŦāđāļāļđāđāđāļāđāļāļģāļāļķāļāļāļķāļāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļāļāļāđāļāļĢāđāļāļĢāļĄāļāļĩāđāđāļāđ
āļāļąāļāļāļēāļāļķāđāļ
āļ§āļąāļāļāļļāļāļĢāļ°āļŠāļāļāđ
āđāļāļ·āđāļāļŠāļĢāđāļēāļāđāļāļĢāđāļāļĢāļĄāđāļĨāđāļāļĄāļĩāļāļĩāļāļķāđāļāđāļāđāļāđāļāļĢāđāļāļĢāļĄāļāļĢāļ°āļĒāļļāļāļāđāđāļāđāļāļāļ§āļīāļāđāļāļ§āđ āļāđāļāļĒāļāļāļāļēāļāđāļāļĢāđāļāļĢāļĄāđāļĨāđāļāļāļĩ āđāļāļĒ
āđāļāļīāđāļĄāļŠāđāļ§āļāļāļēāļĢāļŠāļāļāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāđāļāļīāļāļāļāļēāļāļāļąāļāļāļĩāđ
1. āđāļāļ·āđāļāļāļąāļāļāļēāļāļąāļ§āļāļąāļāļāļģāđāļĨāļ°āļāļąāļ§āđāļāļĩāļĒāļāđāļ§āļĒāļēāļāļĢāļāđ(Lexical scanner āđāļĨāļ° Syntactic Analyser)
āđāļŦāđāļŠāļēāļĄāļēāļĢāļ āļāđāļēāļāđāļ§āļĒāļēāļāļĢāļāđ āļāļāļāđāļāđāļāļāđāļāđāļĄāļāļĩāđāļāļāļĩāđāļāđāļāđ
2. āđāļāļ·āđāļāļāļąāļāļāļēāļŠāđāļ§āļāļāļīāļāļāđāļāļāļąāļāļāļđāđāđāļāđāđāļāļĢāđāļāļĢāļĄāđāļĨāđāļāļĄāļĩāļāļĩ āđāļŦāđāļŠāļēāļĄāļēāļĢāļāđāļŪāđāļĨāļāđāđāļ§āļĒāļēāļāļĢāļāđāļāļāļāđāļāļĢāđāļāļĢāļĄāđāļāļīāļ
āļāļāļēāļāđāļāđ
3. āđāļāļ·āđāļāļāļąāļāļāļēāļŠāđāļ§āļāļ§āļīāđāļāļĢāļēāļ°āļŦāđāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāļĢāđāļāļĢāļĄāđāļāļīāļāļāļāļēāļāļāļĩāđāļāļđāđāđāļāđāđāļāļĩāļĒāļāļāļķāđāļāđāļ
āđāļĨāđāļāļĄāļĩāļāļĩ
4. āđāļāļ·āđāļāļāļąāļāļāļēāļāļąāļ§āļ§āļīāđāļāļĢāļēāļ°āļŦāđāļāļ§āļēāļĄāļŠāļīāđāļāđāļāļĨāļ·āļāļāļāļĨāļąāļāļāļēāļāļāļāļāđāļāļĢāđāļāļĢāļĄāđāļāļīāļāļāļāļēāļāļāļĩāđāļāļđāđāđāļāđāđāļāļĩāļĒāļāļāļķāđāļāđāļ
āđāļĨāđāļāļĄāļĩāļāļĩ
10. 2
āļāļĢāļ°āđāļĒāļāļāđ
1. āļāļēāļĢāļŠāļĢāđāļēāļāđāļāļĢāđāļāļĢāļĄāđāļĨāđāļāļĄāļĩāļāļĩ āđāļāđāļāđāļāļ§āļāļīāļāđāļŦāđāļāļđāđāđāļāđāđāļāđāļēāđāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāļīāļāļāļāļēāļ āļāļķāđāļāđāļāđāļāļāļ§āļēāļĄāļĢāļđāđ
āđāļāļ·āđāļāļāļāđāļāļāļāļāļāļēāļĢāļāļģāļāļēāļāļāļāļāļāļāļĄāļāļīāļ§āđāļāļāļĢāđāļāļĩāđāļĄāļĩāļĢāļ°āļāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāļīāļāļāļāļēāļāļŦāļĢāļ·āļāļāļāļĄāļāļīāļ§āđāļāļāļĢāđ
āđāļāļ Core 2 Duo āļāļĩāđāđāļāļāļąāļāļāļļāļāļąāļāļāļāļĄāļāļīāļ§āđāļāļāļĢāđāļāļ°āđāļĢāļīāđāļĄāļĄāļĩāļāļēāļĢāļāļąāļāļāļēāļĢāļ°āļāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāļāđāļāļīāļ
āļāļāļēāļāļĄāļĩāđāļāļ§āđāļāđāļĄāđāļāđāļāļąāļāļĄāļēāļāļāļķāđāļ āđāļāļĢāļēāļ°āļāļ°āļāļąāđāļāļāļđāđāđāļāđāļāļāļĄāļāļīāļ§āđāļāļāļĢāđāļāļ°āļŠāļēāļĄāļēāļĢāļāļĻāļķāļāļĐāļēāļĢāļ°āļāļāļāļēāļĢ
āļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāļīāļāļāļāļēāļāđāļāđāļāļēāļāđāļāļĢāđāļāļĢāļĄāđāļĨāđāļāļĄāļĩāļāļĩ
2. āļŠāđāļ§āļāļāļāļāļāļēāļĢāđāļŪāđāļĨāļāđāđāļāļĢāđāļāļĢāļĄāļāļ°āļāđāļ§āļĒāđāļŦāđāļāļđāđāđāļāđāđāļŦāđāļāļāļ§āļēāļĄāļāļīāļāļāļĨāļēāļāļāļāļāļāļēāļĢāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāđāļāđāļāđāļēāļĒāļāļķāđāļ
āđāļĨāļ°āļāļąāļāļāļĩ āđāļāļĒāđāļĄāļ·āđāļāļāļđāđāđāļāđāļāļīāļĄāļāđāļāļģāļŠāļąāđāļ āļŦāļĢāļ·āļāđāļāđāļāđāļāļŠāđāļ§āļāļāļĩāđāđāļāđāļāļāļģāļŠāļģāļāļąāļ āđāļĨāđāļāļĄāļĩāļāļĩāļāļ°āļāļģāļāļēāļĢāđāļŪāđāļĨāļāđāđāļ
āļŠāđāļ§āļāļāļģāđāļŦāļĨāđāļēāļāļąāđāļāļāļąāļāļāļĩ āļāļģāđāļŦāđāļāļđāđāđāļāđāļāļēāļāļŠāļēāļĄāļēāļĢāļāļāļĢāļ§āļāļŠāļāļāđāļāđāļāļąāļāļāļĩ
3. āļŠāđāļ§āļāļāļāļāļāļēāļĢāļ§āļīāđāļāļĢāļēāļ°āļŦāđāļāļĨāļąāļāļāļēāļāđāļĨāļ°āļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļāļģāđāļŦāđāļāļđāđāđāļāđāļāļĢāļēāļāļāļķāļāļāļēāļĢāđāļāđāļāļĨāļąāļāļāļēāļāđāļĨāļ°
āļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļāļāļāđāļāļĢāđāļāļĢāļĄāļāļĩāđāļāļđāđāđāļāđāđāļāļĩāļĒāļāļāļķāđāļāđāļāđ
4. āļāļēāļĢāļŠāļĢāđāļēāļāļŠāđāļ§āļāļāļāļāđāļāļĢāđāļāļĢāļĄāđāļāļĒāđāļāđāļāļēāļ§āļēāđāļāļāđāļāđāļĨāļĒāļĩ āļāļģāđāļŦāđāļāļĨāļĨāļąāļāļāđāļāļĩāđāđāļāđ āļŠāđāļ§āļāļ§āļīāđāļāļĢāļēāļ°āļŦāđ
āļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ āļŦāļĢāļ·āļāļŠāđāļ§āļāļ§āļīāđāļāļĢāļēāļ°āļŦāđāļāļēāļĢāđāļāđāļāļĨāļąāļāļāļēāļ āļŠāļēāļĄāļēāļĢāļāļāļģāđāļāļāļąāļāļāļēāļāđāļāđāļāļ·āđāļāļŠāļĢāđāļēāļāđāļāđāļ
āđāļāļĢāđāļāļĢāļĄāļāļĢāļ°āļĒāļļāļāļāđāļāļ·āđāļāđ āđāļāđ
11. 3
āļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļāļāļāļāļēāļĢāļāļąāļāļāļē
āđāļāļāļēāļĢāļāļąāļāļāļēāđāļāļĢāļāļāļēāļāđāļĨāđāļāļĄāļĩāļāļĩāļāļđāđāļāļąāļāļāļēāđāļāđāļāļģāļĻāļķāļāļĐāļēāļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļ āļāļĢāļ°āļ§āļąāļāļīāļāļ§āļēāļĄāđāļāđāļāļĄāļēāļāļāļāļāđāļāļĄāļđāļĨ
āļāđāļēāļāđ āļāļĩāđāđāļāļĩāđāļĒāļ§āļāđāļāļ āđāļĨāļ°āļāļĪāļĐāļāļĩāļāđāļēāļāđ āļāļĩāđāļĄāļĩāļāļ§āļēāļĄāđāļāļĩāđāļĒāļ§āļāđāļāļ āļāļąāļāļāļĩāđ
āđāļāļ·āđāļāđāļĢāļ·āđāļāļāļĒāđāļ (Story Board)
āđāļāļĢāļ·āđāļāļāļĄāļ·āļāđāļĢāļĩāļĒāļāļĢāļđāđāļŠāļģāļŦāļĢāļąāļāļāļķāļāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāđāļĢāļīāđāļĄāļāđāļāļĄāļĩāđāļāļĢāļđāļāđāļāļāļāļāļāđāļāļĢāđāļāļĢāļĄāļāđāļ§āļĒāļŠāļāļ āļŦāļĢāļ·āļ āļāļĩāđāļāđāļ (Computer
Aided Instruction) āđāļāļĒāđāļāļāļĩ āļ.āļĻ. 1970 āļĄāļĩāļĢāļ°āļāļāļāđāļ§āļĒāļŠāļāļāļāļ·āđāļ âāļāļĩāļ (TEACH)â āļāļāļāļĄāļŦāļēāļ§āļīāļāļĒāļēāļĨāļąāļĒāđāļāđāļĄāđāļāļāļĩ (MIT) āđāļāđāļ
āđāļāļĢāđāļāļĢāļĄāļŠāļāļāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāļ āļēāļĐāļē UNCL āđāļŦāđāļāļąāļāļāļąāļāļĻāļķāļāļĐāļēāļāļąāđāļāļāļĩāļāļĩāđāļŦāļāļķāđāļ (Fenichel, Weizenbaum, & Yochelson, 1970)
[5] āđāļāļāļĩ āļ.āļĻ. 1968 - 1969 āļāļķāđāļāđāļāđāļĢāļąāļāļāļēāļĢāļĒāļāļĄāļĢāļąāļāļāļēāļāļāļđāđāđāļĢāļĩāļĒāļāđāļāļĒāļŠāđāļ§āļāđāļŦāļāđ āđāļāđāļāļđāđāļ§āļīāļāļąāļĒāđāļĄāđāđāļāđāļāļĢāļ°āđāļĄāļīāļāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļāļāļāļāļēāļĢ
āđāļĢāļĩāļĒāļāļĢāļđāđāļāļĩāđāđāļāđāļĢāļąāļāļāļēāļāļāļēāļĢāđāļāđāđāļāļĢāđāļāļĢāļĄ āļāļķāļāđāļĄāđāļāļēāļāļĢāļ°āļāļļāđāļāđāļ§āđāļēāđāļāļĢāđāļāļĢāļĄāļāļĩāļāļĄāļĩāļŠāđāļ§āļāļāđāļ§āļĒāļāļąāļāļāļēāļĻāļąāļāļĒāļ āļēāļāļāļāļāļāļđāđāđāļĢāļĩāļĒāļ
āļ āļēāļĒāļŦāļĨāļąāļāļāļēāļāļĢāļ°āļāļāļāļĩāļ āļĄāļĩāļāļāļ°āļ§āļīāļāļąāļĒāļāļĨāļļāđāļĄāļŦāļāļķāđāļ (āđāļāļ§āļēāđāļĨāļĩāļĒāđāļāļ āđāļĨāļ°āļāļāļ°, 2006) āļāļĨāđāļēāļ§āļāļķāļāļāļēāļāļ§āļīāļāļąāļĒāļāļķāđāļāđāļāđāļāļąāļāļāļē
āđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāđāļ§āļĒāļŠāļāļāđāļāļĒāđāļāđāļ āļēāļāļŦāļĨāļēāļĒāļāļīāđāļ āđāļāļĒāļāļĨāđāļēāļ§āļ§āđāļē āļāļēāļĢāļĻāļķāļāļĐāļēāļāļāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāđāļŦāļĨāđāļēāļāļĩāđāđāļāđāđāļŠāļāļāđāļŦāđāđāļŦāđāļāļ§āđāļē āļāļēāļĢāļŠāļāļāđāļāļĩāļĒāļ
āđāļāļĢāđāļāļĢāļĄāđāļāļĒāđāļāđāļ āļēāļāļĄāļĩāļāļĨāļŠāļąāļĄāļĪāļāļāļīāđāļāđāļāļāļēāļĢāđāļĢāļĩāļĒāļāļĢāļđāđāļĢāļ°āļĒāļ°āļĒāļēāļ§ (Long-term effects) āļāļķāļāđāļāđāļāļģāđāļŠāļāļāļāļēāļāļ§āļīāļāļąāļĒāđāļāļ·āđāļāļāļīāļŠāļđāļāļāđāļāļĨāļāļĢāļ°āļāļ
āļāļēāļāļāļēāļĢāđāļāđāļ āļēāļāđāļāļĨāļ·āđāļāļāđāļŦāļ§āļŦāļĢāļ·āļāļ āļēāļāļāļīāđāļ āļāđāļāļāļēāļĢāđāļĢāļĩāļĒāļāļĢāļđāđāļĢāļ°āļĒāļ°āļŠāļąāđāļ (Short-term effects) āđāļāļ§āļēāđāļĨāļĩāļĒāđāļāļ āđāļĨāļ°āļāļāļ° āđāļāđāđāļāļĢāđāļāļĢāļĄ
āļāđāļ§āļĒāļŠāļāļāļāļ·āđāļ āđāļāļĨāļāđāļāļāļĩāđ (PlanAni) āļĄāļēāļāļģāļāļēāļĢāļāļāļĨāļāļ āđāļāļĒāļāļĢāļąāļāđāļŦāđāđāļāļĨāļāđāļāļāļĩāđāđāļŠāļāļāļ āļēāļāđāļāļĨāļ·āđāļāļāđāļŦāļ§āđāļāļŠāļāļāļĢāļ°āļāļąāļ āļāļ·āļāđāļŠāļāļāđāļāļĒ
āļĨāļ°āđāļāļĩāļĒāļ āđāļĨāļ°āđāļŠāļāļāļāļĒāđāļēāļāļŦāļĒāļēāļāļŦāļĢāļ·āļāđāļŠāļāļāđāļāđāļāļ āļēāļāļāļīāđāļ āļāļđāđāļ§āļīāļāļąāļĒāļāļģāļāļēāļĢāļāļāļĨāļāļāđāļāļĒāđāļŦāđāļāļđāđāđāļĢāļĩāļĒāļāļāļĨāļļāđāļĄāđāļāļĩāļĒāļ§āļāļąāļ āļāļāļĨāļāļāđāļāđāđāļāļĨāļāđāļāļāļĩāđ
āļāļąāđāļāļŠāļāļāļĢāļđāļāđāļāļ āđāļĨāļ°āļāļāļ§āđāļēāļāļđāđāđāļĢāļĩāļĒāļāđāļŦāđāļāļ§āļēāļĄāļŠāļāđāļāļāļąāļāļāđāļāļāļ§āļēāļĄāļāļĢāļ°āļāļāļāļĄāļēāļāļāļ§āđāļēāļ āļēāļāđāļāļĨāļ·āđāļāļāđāļŦāļ§ āļāļķāļāļŠāļĢāļļāļāđāļāđāļ§āđāļēāļāļēāļĢāļĄāļĩ
āļ āļēāļāđāļāļĨāļ·āđāļāļāđāļŦāļ§āđāļāļĒāļĨāļ°āđāļāļĩāļĒāļāđāļĄāđāđāļāđāļĄāļĩāļāļĨāļāļĢāļ°āļāļāļāđāļāļāļēāļĢāđāļāđāļāļāļāļĢāļ°āļĒāļ°āļŠāļąāđāļāļāļāļāļāļđāđāđāļĢāļĩāļĒāļ āđāļāđāļēāļāļąāļāļāļēāļĢāļĄāļĩāļāļģāļāļāļīāļāļēāļĒāļŦāļĢāļ·āļāļāđāļāļāļ§āļēāļĄ
āļāļĢāļ°āļāļāļāļ āļēāļ āļāļķāđāļāļŠāļāļāļāļĨāđāļāļāļāļąāļāļāđāļāļĄāļđāļĨāđāļāļāļąāļ§āđāļāļĢāđāļāļĢāļĄ
āđāļāļāļĩ āļ.āļĻ. 2005 āđāļāļāđāļāđāļāļĨāļąāļŠ āđāļĨāļ°āļāļāļ° (Efopoulos, Dagdilelis, Evangelidis, & Satratzemi, 2005) āđāļŠāļāļ
āđāļāļĢāļ·āđāļāļāļĄāļ·āļāđāļĢāļĩāļĒāļāļĢāļđāđāļāļāđāļ§āđāļāļāļ·āđāļ āđāļ§āļāđ (WIPE â Web Integrated Programming Environment) āđāļāļĒāđāļŠāļāļāļ§āđāļēāđāļāļĢāļ·āđāļāļāļĄāļ·āļāđāļĢāļĩāļĒāļāļĢāļđāđāļāļ§āļĢ
āđāļāđāļŦāļĨāļąāļāļāļēāļĢāļāļāļāđāļāļāļŠāļēāļĄāļāļĢāļ°āļāļēāļĢāđāļāđāđāļāđ
1. āđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāļ§āļĢāļāļāļāđāļāļāđāļŦāđāļāđāļēāļĒāļāđāļāļāļēāļĢāđāļāđāļāļēāļ (Simplicity)
2. āđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāļ§āļĢāđāļāđāļāđāļāļĄāļđāļĨāļāļĩāđāļŠāļāļāļāļĨāđāļāļāļāļąāļāļŦāļāļąāļāļŠāļ·āļāļŦāļĢāļ·āļāļāļđāđāļĄāļ·āļ (Consistency)
3. āđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāļ§āļĢāđāļāđāļāđāļŦāđāļāļđāđāđāļĢāļĩāļĒāļāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāđāļĄāđāđāļāđāļāļāļāđāļāļāļāļāļ āļēāļ (Emphasis on the source code)
āļāļāļ°āļ§āļīāļāļąāļĒāđāļāđāļāļģāđāļ§āļāđāđāļāļāļāļĨāļāļāđāļāđāļāļąāļāļāļąāļāļĻāļķāļāļĐāļēāļāļķāđāļāđāļĢāļĩāļĒāļāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāđāļāļāļąāđāļāļāļĩāļāļĩāđāļŦāļāļķāđāļ āđāļĨāļ°āļāđāļāļāļāļāļ§āļēāļĄāļāļīāļāļāļĨāļēāļāļāļĩāđ
āļāļąāļāļĻāļķāļāļĐāļēāļŠāđāļ§āļāđāļŦāļāđāļāđāļāļāđāļāđāđāļ§āļĨāļēāļāļēāļāđāļāļāļēāļĢāđāļāđāđāļ āđāļāđāđāļāđ āļāļīāļāđāļ§āļĒāļēāļāļĢāļāđāđāļāļāļāļĢāļ°āļāļēāļĢ āđāļĨāļ°āļāļēāļĢāļāļīāļāđāļāļīāļāļāļĢāļĢāļāļ°āļŠāļĩāđāļāļĢāļ°āļāļēāļĢ
āļŪāļąāļāļāđāļŪāļēāļ§āđāļāļāđāļĨāļ°āļāļĢāļēāļ§āļāđ (Hundhausen & Brown, 2007) āļĻāļķāļāļĐāļēāļāļĨāļāļĢāļ°āļāļāļāļāļāļāļļāļāļĨāļąāļāļĐāļāļ°āļāļ§āļēāļĄāļĄāļĩāļāļĩāļ§āļīāļāļāļĩāļ§āļē
(Live ness) āļāļāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāđāļĢāļĩāļĒāļāļĢāļđāđ āļāđāļāļāļĨāļŠāļąāļĄāļĪāļāļāļīāđāļāļāļāļāļēāļĢāđāļĢāļĩāļĒāļāļāļāļāļāļđāđāđāļĢāļīāđāļĄāļāđāļāđāļĢāļĩāļĒāļāļ§āļīāļāļĩāļāļēāļĢāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāđāļāļīāļāļāļąāđāļāļāļāļ
(Imperative programming) āđāļĨāļ°āđāļāđāļāđāļāļāļāļ§āđāļēāļāļđāđāđāļĢāļĩāļĒāļāļāļ°āđāļāļĩāļĒāļāļāļģāļŠāļąāđāļāļāļĩāđāļāļīāļāđāļ§āļĒāļēāļāļĢāļāđāđāļĨāļ°āļāļīāļāļāļ§āļēāļĄāļŦāļĄāļēāļĒāļāđāļāļĒāļĄāļēāļāļŦāļēāļāļāļđāđāđāļĢāļĩāļĒāļ
āđāļāđāļĢāļąāļāļāļĨāļāļāļāļāļĨāļąāļ (feedback) āļāļēāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāđāļĢāļĩāļĒāļāļĢāļđāđāđāļĄāļ·āđāļāđāļāļĩāļĒāļāļāļąāļāļāļēāļĢāđāļĄāđāđāļāđāļĢāļąāļāļāļĨāļāļāļāļāļĨāļąāļ āđāļāđāļāļĒāđāļēāļāđāļĢāļāđāļāļēāļĄ āđāļĄāđāļ§āđāļēāļāļđāđāđāļĢāļĩāļĒāļāļāļ°
āđāļāđāļĢāļąāļāļāļĨāļāļāļāļāļĨāļąāļāļāđāļ§āļĒāļ§āļīāļāļĩāļāļēāļĢāđāļ āđāļĄāđāļŠāđāļāļāļĨāļ§āđāļēāļāļ°āļāđāļ§āļĒāđāļŦāđāļāļđāđāđāļĢāļĩāļĒāļāļĨāļāļāļēāļĢāđāļāļĩāļĒāļāđāļ§āļĒāļēāļāļĢāļāđāļŦāļĢāļ·āļāļāļ§āļēāļĄāļŦāļĄāļēāļĒāļāļīāļāđāļāļāļāđāļēāļāļāļąāļāļāļĒāđāļēāļāļĄāļĩ
12. āļāļąāļĒāļŠāļģāļāļąāļāļāļēāļāļŠāļāļīāļāļī āļāļĨāđāļēāļ§āļāļ·āļ āļāļēāļĢāđāļĨāļ·āļāļāļĢāļąāļāļāļĨāļāļāļāļāļĨāļąāļāđāļĄāļ·āđāļāļāļāļāđāļāļāļāļēāļĢ (Self-select feedback) āļŦāļĢāļ·āļ āļāļēāļĢāđāļŠāļāļāļāļĨāļāļāļāļāļĨāļąāļ
āļāļąāļāļāļĩāđāļāļĒāļāļąāļāđāļāļĄāļąāļāļī (Automatic feedback) āļāļąāđāļāđāļĄāđāļĄāļĩāļāļ§āļēāļĄāđāļāļāļāđāļēāļāļāļąāļ
āļāļēāļāļ§āļīāļāļąāļĒāļāļāļ āļŪāļąāļāļāđāļŪāļēāļ§āđāļāļāđāļĨāļ°āļāļĢāļēāļ§āļāđ āļĻāļķāļāļĐāļēāļŠāļāļāđāļāļŠāļēāļĄāļāļāļāđāļāļĢāļ°āļāļāļ āļāļāļāļāļļāļāļĨāļąāļāļĐāļāļ°āļāļ§āļēāļĄāļĄāļĩāļāļĩāļ§āļīāļāļāļĩāļ§āļēāļāļāļ
4
āđāļāļĢāļ·āđāļāļāļĄāļ·āļāđāļĢāļĩāļĒāļāļĢāļđāđ āļāļķāđāļāļāļēāļāļīāđāļĄāđāļāđāļāđāļĢāļ°āļāļļāđāļ§āđ (Tanimotoâs notion of liveness) āđāļāđāđāļāđ
1. āļĨāļąāļāļĐāļāļ°āļāļāļāđāļāļ·āđāļāļŦāļēāļāļĩāđāļāļāļāļāļĨāļąāļāļāđāļāļāļđāđāđāļĢāļĩāļĒāļ (feedback content)
2. āđāļ§āļĨāļēāļāļĩāđāļāļđāđāđāļĢāļĩāļĒāļāļāđāļāļāļĢāļāļāļĨāļāļāļāļāļĨāļąāļ (feedback delay)
3. āļ§āļīāļāļĩāļāļēāļĢāļāļĩāđāļāļđāđāđāļĢāļĩāļĒāļāđāļāđāļĢāļąāļāļāļĨāļāļāļāļāļĨāļąāļ (feedback self-selection) āļāļķāđāļāļŦāļĄāļēāļĒāļāļķāļāļāļđāđāđāļĢāļĩāļĒāļāļŠāļēāļĄāļēāļĢāļāđāļĨāļ·āļāļāļĢāļąāļāļāļĨ
āļāļāļāļāļĨāļąāļāđāļĄāļ·āđāļāļāđāļāļāļāļēāļĢ āļŦāļĢāļ·āļ āđāļāļĢāļ·āđāļāļāļĄāļ·āļāđāļĢāļĩāļĒāļāļĢāļđāđāđāļŠāļāļāļāļĨāļāļāļāļāļĨāļąāļāļāļąāļāļāļĩāđāļāļĒāļāļąāļāđāļāļĄāļąāļāļī
āđāļāļĒāđāļāđāđāļāļĢāļ·āđāļāļāļĄāļ·āļāđāļĢāļĩāļĒāļāļĢāļđāđāļāļ·āđāļ āđāļāļĨāļ§āļīāļŠ (ALVIS) āļŠāļāļāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāļ āļēāļĐāļēāļāļąāļĨāļāđāļē (SALSA) āļāļķāđāļāđāļāđāļāļ āļēāļĐāļēāļāļĒāđāļēāļāļāđāļēāļĒ āļĄāļĩ
āļĨāļąāļāļĐāļāļ°āļāļĨāđāļēāļĒāļāļģāļŠāļąāđāļāđāļāļĩāļĒāļĄ āđāļāļĨāļ§āļīāļŠāļāļđāļāļāļĢāļąāļāđāļāđāļāļŠāļēāļĄāļĢāļđāļāđāļāļāļāļģāđāļāļāļāļēāļĄāļĨāļąāļāļĐāļāļ°āļāļēāļĢāđāļŠāļāļāļāļĨāļāļāļāļāļĨāļąāļ āļŪāļąāļāļāđāļŪāļēāļ§āđāļāļāđāļĨāļ°āļ
āļĢāļēāļ§āļāđ āļāļąāļāđāļĨāļ·āļāļāļāļąāļāļĻāļķāļāļĐāļēāļĢāļ°āļāļąāļāļāļĢāļīāļāļāļēāļāļĢāļĩāļāļąāđāļāļāļĩāļāļĩāđ 1 āđāļāļĒāļāļąāļāđāļĨāļ·āļāļāļāļđāđāļāļĩāđāđāļĄāđāđāļāļĒāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāļĄāļēāļāđāļāļ āđāļāļĒāļāļąāļāļ§āļīāļāļąāļĒāļāļēāļāļ§āđāļēāļāļ°āļāļģ
āļāļēāļĢāļāļāļĨāļāļāđāļāļāļāļēāļāļāđāļāļ·āđāļāļŦāļēāļāļĨāļāļĢāļ°āļāļāļāļāļāļāļēāļĢāļāļ°āļĨāļāđāļ§āļĨāļēāļŠāđāļāļāļĨāļāļāļāļāļĨāļąāļ āđāļĨāļ°āļāļ§āļēāļĄāđāļāđāļāđāļāđāļāđāļāļĩāđāļāļ°āļŠāļĢāđāļēāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāđāļĢāļĩāļĒāļāļĢāļđāđāļāļĩāđ
āļāļĢāļąāļāļāļēāļĄāļĨāļąāļāļĐāļāļ°āļāļ§āļēāļĄāļāđāļāļāļāļēāļĢāļāļāļāļāļđāđāđāļĢāļĩāļĒāļāđāļāđ
āļĢāļđāļāļāļĩāđ 1 āđāļāļĢāļ·āđāļāļāļĄāļ·āļāđāļĢāļĩāļĒāļāļĢāļđāđāđāļāļĨāļ§āļīāļŠ (ALVIS) āđāļāļāđāļŠāļāļāļāļĨāļāļāļāļāļĨāļąāļāļāļąāļāđāļāļĄāļąāļāļī â āļāļąāļāļāļĩāļāļĩāđāļāļđāđāđāļĢāļĩāļĒāļāļāļīāļĄāļāđāļāļīāļ
(Hundhausen āđāļĨāļ° Brown, 2007)
āļŠāđāļ§āļāļāļēāļĢāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāđāļāļĒāļāļĢāļ°āļŦāļāļąāļāļāļķāļāļāļĨāļąāļāļāļēāļ (Power-aware programming) āļāļąāđāļāđāļāđāļāļāļĢāļ°āđāļāđāļ
āļŠāļģāļāļąāļāđāļāļāļēāļĢāļāļĨāļīāļāđāļāļĢāđāļāļĢāļĄāļŠāļģāļŦāļĢāļąāļāļĢāļ°āļāļāļāļąāļāļāļąāļ§ āļŦāļĢāļ·āļāļŠāļģāļŦāļĢāļąāļāļŦāļāđāļ§āļĒāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāļāļāļąāļāļāļąāļ§ āļāļķāđāļāļāļēāļĢāļ§āļīāđāļāļĢāļēāļ°āļŦāđ
āļāļ§āļēāļĄāļŠāļīāđāļāđāļāļĨāļ·āļāļāļāļĨāļąāļāļāļēāļāđāļāļāđāļēāļāļąāđāļ āļāļāļīāļāļēāļĒāđāļāļĒāđāļāđāļāļĢāļīāļĄāļēāļāļāļĨāļąāļāļāļēāļāđāļāļŦāļāđāļ§āļĒ āļ§āļąāļāļāđ (watt) āļ§āļąāļāļāđāļāđāļāļāļąāđāļ§āđāļĄāļ
(watt-hour) āļŦāļĢāļ·āļ āļāļđāļĨ (Joule) āļāļēāļĢāļāļĢāļ°āļĄāļēāļāļāļēāļĢāđāļāđāļāļĨāļąāļāļāļēāļāđāļāļāļąāļāļāļļāļāļąāļāļāļģāđāļāļĒāļ§āļīāđāļāļĢāļēāļ°āļŦāđāļāļēāļāļāļģāļŠāļąāđāļ
āļ āļēāļĐāļēāđāļāļŠāđāļāļĄāļāļĨāļĩ āđāļāļĒāļāļāļĄāđāļāđāļĨāļāļĢāđāļāļķāđāļāļāļēāļĢāļ§āļīāđāļāļĢāļēāļ°āļŦāđāđāļāđāļāđāļāđāļ āļĢāļ°āļāļąāļāļĢāļāļāļāļāļāļŠāļąāļāļāļēāļāļāļēāļŽāļīāļāļē āļĢāļ°āļāļąāļāļāļģāļŠāļąāđāļ
āļĢāļ°āļāļąāļāļāļĨāļļāđāļĄāļāļģāļŠāļąāđāļ āđāļĨāļ°āļĢāļ°āļāļąāļāļāļąāļāļāđāļāļąāđāļ
āđāļāļĩāļĒāļāđāļĨāļ°āļāļāļ° (Xian, Lu, & Li, 2007)āđāļŠāļāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāđāļāļ·āđāļāļŠāļĢāđāļēāļāđāļāļĢāđāļāļĢāļĄāļāļĢāļ°āļĒāļļāļāļāđ
āļāļĩāđāļāļĢāļ°āļŦāļāļąāļāļāļķāļāļāļēāļĢāđāļāđāļāļĨāļąāļāļāļēāļ āđāļāļĒāđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāļĩāđāļāļ°āđāļŠāļāļāļāļļāļāļĨāļąāļāļĐāļāļ°āļāļēāļĢāđāļāđāļāļĨāļąāļāļāļēāļāļāļāļāđāļāļĢāđāļāļĢāļĄāđāļĄāļ·āđāļ
13. āļāļĢāļ°āļĄāļ§āļĨāļāļĨ āđāļāļĢāļ·āđāļāļāļĄāļ·āļāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāļāļĩāđāļāļąāļāļ§āļīāļāļąāļĒāđāļŠāļāļāļĄāļĩāļĨāļąāļāļĐāļāļ°āđāļāđāļ āđāļĨāļāļĢāļēāļĨāļĩāđāļāļĩāđāđāļāļĢāđāļāļĢāļĄāļāļĢāļ°āļĒāļļāļāļāđāļŠāļēāļĄāļēāļĢāļ
āđāļĢāļĩāļĒāļāđāļāđāđāļāđ (Application Program Interface Library) āļāļĩāđāļāļ°āļāļģāđāļāđāļāđāđāļāļ·āđāļāļ§āļīāđāļāļĢāļēāļ°āļŦāđāļāļ§āļēāļĄāļŠāļīāđāļāđāļāļĨāļ·āļāļāļāļĨāļąāļāļāļēāļ
āļāļēāļĢāļāļĢāļ°āļĄāļēāļāļāļ§āļēāļĄāļŠāļīāđāļāđāļāļĨāļ·āļāļāļāļĨāļąāļāļāļēāļāļāļģāđāļāļĒāđāļāđāļāļāļēāļĢāļāļģāļāļēāļāļāļāļāļāļģāļŠāļąāđāļāđāļāđāļāļĢāđāļāļĢāļĄāđāļāđāļāļŠāļēāļĄāļāļāļīāļ
āļāļēāļĢāļŠāđāļāļĢāļąāļāļāđāļāļĄāļđāļĨāļāļēāļāđāļāļĢāļ·āļāļāđāļēāļĒ (net) āļāļēāļĢāļāđāļēāļāđāļāļĩāļĒāļāļāļīāļŠāļāđ (disk) āļāļēāļĢāļāļģāļāļ§āļāļāļĩāđāļŦāļāđāļ§āļĒāļāļĢāļ°āļĄāļ§āļĨāļāļĨ (processor)
āđāļĄāļ·āđāļāđāļāļĢāđāļāļĢāļĄāļāļĢāļ°āļĄāļ§āļĨāļāļāļāļķāļāļāļģāļŠāļąāđāļQueryEnergy āđāļĨāļāļĢāļēāļĢāļĩāđāļāļ°āļāļĢāļ°āļŠāļēāļāļāļēāļāļāļąāļ OS āđāļāļ·āđāļāļāļģāļāļĨāļļāđāļĄāļāļģāļŠāļąāđāļāļāļĩāđāļāļĒāļđāđ
āđāļāļāđāļ§āļāļĄāļēāđāļĒāļāļāļāļīāļāđāļĨāļ°āļāļĢāļ°āđāļĄāļīāļāļāđāļēāļāļĨāļąāļāļāļēāļāļāļāļāļāļģāļŠāļąāđāļāđāļāđāļĨāļ°āļāļāļīāļāđāļāļĒāđāļāđāļāđāļāđāļĄāđāļāļąāļāļŠāļīāļāđāļ (āļāļąāļāļĢāļđāļāļāļĩāđ 2) āđāļĨāļ°
āļāļģāļāļ§āļāļāđāļēāļāļĢāļ°āļĄāļēāļāļāļēāļĢāļŠāļīāđāļāđāļāļĨāļ·āļāļāļāļĨāļąāļāļāļēāļāļāļāļāļĄāļēāđāļāļŦāļāđāļ§āļĒāļāļđāļĨ (āļāļąāļāļĢāļđāļāļāļĩāđ3)
5
āļĢāļđāļāļāļĩāđ 2 āļāļąāļāļāđāļāđāļĄāđāļāļąāļāļŠāļīāļāđāļāđāļāļ·āđāļāļāļĢāļ°āļĄāļēāļāļāļēāļĢāđāļāđāļāļĨāļąāļāļāļēāļ (Xian, Lu, & Li, 2007)
āļĢāļđāļāļāļĩāđ 3 āļāļēāļĢāđāļāđāļāļĨāļąāļāļāļēāļāļāļāļāđāļāļĢāđāļāļĢāļĄāļāđāļēāļāđāļāļĨāđāļŠāļĩāđāļ§āļīāļāļĩ (Xian, Lu, & Li, 2007)
āļāļĨāļĨāļąāļāļāđāļāļēāļāļāļēāļĢāļāļāļĨāļāļāļāļāļ§āđāļēāđāļĨāļāļĢāļēāļĢāļĩāļŠāļēāļĄāļēāļĢāļāļāđāļ§āļĒāđāļŦāđāļāļđāđāļŠāļĢāđāļēāļāđāļāļĢāđāļāļĢāļĄāđāļāđāļāļĢāļ°āđāļĄāļīāļāļāļ§āļēāļĄāļŠāļīāđāļāđāļāļĨāļ·āļāļ
āļāļĨāļąāļāļāļēāļāļāļāļāđāļāļĢāđāļāļĢāļĄāđāļāđ āđāļĨāļ°āļāđāļ§āļĒāđāļŦāđāļāļđāđāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāļāļĢāļ°āļŦāļāļąāļāļāđāļāļāļ§āļēāļĄāļŠāļģāļāļąāļāđāļāļāļēāļĢāļāļĢāļ°āđāļĄāļīāļāļāļēāļĢāđāļāđ
āļāļĨāļąāļāļāļēāļāđāļāļĢāļ°āļŦāļ§āđāļēāļāļāļąāļāļāļēāđāļāļĢāđāļāļĢāļĄ
āļāļēāļĢāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāļāļĩāđāļĄāļĩāļāļēāļĢāļāļģāļāļēāļāđāļāļāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāļīāļāļāļāļēāļ āļāļ°āļāđāļ§āļĒāļĨāļāđāļ§āļĨāļēāđāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļŦāđ
āļĨāļāļĨāļ āđāļĨāļ°āđāļāļīāđāļĄāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāđāļŦāđāļāļąāļāļāļāļĄāļāļīāļ§āđāļāļāļĢāđ āđāļāđāđāļāļ·āđāļāļāļāļēāļāļāļēāļĢāļāļąāļāļāļēāđāļāļĢāđāļāļĢāļĄāđāļāļīāļāļāļāļēāļ āļĄāļĩāļāļ§āļēāļĄāļĒāļļāđāļāļĒāļēāļ
āļāļąāļāļāđāļāļāđāļāļāļēāļĢāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄ āļāļąāļāļāļąāđāļāļŦāļąāļ§āđāļāļŦāļĨāļąāļāļāļĩāđāļāđāļ§āļĒāđāļāļāļēāļĢāļāļąāļāļāļēāđāļāļĢāđāļāļĢāļĄāđāļāļīāļāļāļāļēāļāļāļķāļāļāļĒāļđāđāļāļąāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāļĩāđ
āļāđāļ§āļĒāđāļāļāļēāļĢāļāļąāļāļāļē āļāļķāđāļāļĒāļąāļāļĄāļĩāļāđāļāļĒ āđāļāļāļĩ āļ.āļĻ.1994 āļŪāļāļāļāļāđāļāļ āđāļĨāļ°āļāļāļ° (Tan āđāļĨāļ° Cai, 1994) āđāļāđāđāļŠāļāļ
āđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāļĩāđāļāļ·āđāļāļ§āđāļē āļ§āļĩāļāļĩāļāļāļāļŠ (VPEcons) āļāļķāđāļāđāļāđāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāļĩāđāļāđāļ§āļĒāđāļāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāđāļāļīāļāļāļāļēāļ āļāļĢāļ°āđāļ āļ Visual
14. Programming Environment āđāļāļĒāđāļĢāļīāđāļĄāļāļēāļāļāļēāļĢāļāļąāļāļāļēāđāļāđāļāļĢāļđāļāđāļāļāļāļāļ Model āļĢāļđāļāļ āļēāļ āđāļāļ·āđāļāđāļŦāđāļāđāļēāļĒāļāđāļāļāļēāļĢ
āđāļāđāļēāđāļāļĢāļ°āļāļāļāļēāļĢāļāļģāļāļēāļāļāļāļāđāļāļĢāđāļāļĢāļĄāļāļĩāđāļāļāļāđāļāļ āđāļĨāļ°āļĨāļąāļāļĐāļāļ°āļāļāļāđāļāļĢāđāļāļĢāļĄāļāļĢāļ°āđāļ āļ Visual
Programming Environment
6
āļĢāļđāļāļāļĩāđ 4 āļ āļēāļ Visual Programming Environment (Tan & Cai, 1994)
āļ§āļĩāļāļĩāļāļāļāļŠ āļāļķāļāđāļāđāļāļāļĩāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāļŦāļāļķāđāļāļāļĩāđāđāļāđāļēāļĄāļēāļāđāļ§āļĒāđāļāļāļēāļĢāļāļąāļāļāļēāđāļāļĢāđāļāļĢāļĄāđāļāļīāļāļāļāļēāļāđāļŦāđāļāđāļēāļĒāļāļķāđāļ āđāļāļĒ
āļĨāļąāļāļĐāļāļ°āļāļāļ āļ§āļĩāļāļĩāļāļāļāļŠāļāļ°āđāļāđāļāļĢāļēāļāļāļīāļāđāļāđāļēāļĄāļēāđāļāđāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāđāļ§āļĒāđāļāļāļēāļĢāļāļāļāđāļāļāđāļāļĢāđāļāļĢāļĄāđāļāļīāļāļāļāļēāļāđāļŦāđāļāļĒāļđāđāđāļ
āļĢāļđāļāđāļāļāļāļāļāđāļĄāđāļāļĨ āļŦāļĨāļąāļāļāļēāļ VPECons āļāļ°āđāļāļĨāļāļāļēāļāļĢāļđāļāđāļāļāļāļāļāđāļĄāđāļāļĨāđāļāđāļāļ āļēāļĐāļē C āļāļĩāđāļŠāļēāļĄāļēāļĢāļāļāļģāļāļēāļ
āļāļāļĢāļ°āļāļāđāļāļīāļāļāļāļēāļāđāļāđ
āļ āļēāļĒāļŦāļĨāļąāļāļĄāļĩāļāļēāļĢāđāļāđāļāļģāļŠāļąāđāļāđāļāđāļāļāđāļāđāļĄāļāļĩ āļāļķāđāļāđāļāđāļāļŠāđāļ§āļāļāđāļāļāļĢāļ°āļŠāļēāļāđāļāļĢāđāļāļĢāļĄāļāļĢāļ°āļĒāļļāļāļāđ(API) āļāļĩāđāļāļđāļāđāļĨāļ·āļāļāđāļāđ
āļŠāļģāļŦāļĢāļąāļāļāļąāļāļāļēāđāļāļĢāđāļāļĢāļĄāđāļāļīāļāļāļāļēāļ āļŠāļēāļĄāļēāļĢāļāļĢāļāļāļĢāļąāļāļāļēāļĢāđāļāļĢāđāļāļĢāļĄāđāļāļ āļēāļĐāļēāļāļĩ/āļāļĩāļāļĨāļąāļŠāļāļĨāļąāļŠāđāļĨāļ°āļāļāļĢāđāđāļāļ āļĢāļ§āļĄāļāļķāļ
āļĢāļ§āļĄāļāļķāļ āļĒāļđāļāļīāļ(Unix )āđāļĨāļ°āđāļĄāđāļāļĢāļāļāļĢāđāļ āļ§āļīāļāđāļāļ§āļĢāđ (Microsoft Window) āđāļāļāļĩ āļ.āļĻ. 2004 āđāļĢāļāļĩ āļāļĨāļāļāđāļāļāļĢāđ āđāļĨāļ°
āļāļāļ° (Kobler, Kranzlmuller, āđāļĨāļ° Volkert, 2004) āđāļāđāđāļŠāļāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāļĩāđāļāļ·āđāļāļ§āđāļē āđāļāļ§āļīāļ (DeWiz) āđāļāļĢāļđāļāđāļāļ
āļāļāļāļāļĢāļēāļāđāļŠāļāļāđāļŦāļāļļāļāļēāļĢāļāđ(Event Graph) āļāļĩāđāļāļ°āļāļāļīāļāļēāļĒāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāđāļāđāļāđāļĨāļ°āļāļąāđāļāļāļāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨ
āļāļģāļŠāļąāđāļāļāđāļēāļāđ āđāļāļŠāđāļ§āļāļāļāļāđāļāļĢāđāļāļĢāļĄāđāļāļīāļāļāļāļēāļ (Critical Regions) āļāļĩāđāļāļđāļāđāļāļĢāļāļāđāļ§āļĒāļāļģāļŠāļąāđāļāļāļāļ OpenMP
āđāļāļāļēāļĢāđāļāđāļāļģāļŠāļąāđāļ āđāļāļ·āđāļāđāļāđāđāļāļāļēāļĢāđāļāļāđāļāļĢāļāļĄāļąāļāļāļ°āđāļāļīāļāļāļąāļāļŦāļēāđāļāļāļēāļĢāđāļĒāđāļāļāļąāļāđāļāđāļāđāļāļĄāļđāļĨ āļŦāļĢāļ·āļāļāļĩāđāđāļĢāļĩāļĒāļāļ§āđāļē
Data race āļĒāļąāļāđāļ āļāļīāļĄ āđāļĨāļ°āļāļāļ° (Kim, Lom, āđāļĨāļ° Jun, 2007) āđāļāđāļĄāļĩāļāļēāļĢāļāļģāđāļŠāļāļ Thread Visualization tool
āļāļķāđāļāđāļāđāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāļĩāđāđāļāđāļēāļĄāļēāļāđāļ§āļĒāđāļŠāļāļ āļĨāļģāļāļąāļāļāļēāļĢāļāļģāļāļēāļāļāļāļāļāļēāļĢāđāļāļāđāļāļĢāļ āđāļāđāļāļ āļēāļ Scalable Graph āļāļĩāđāļāļđāļ
āđāļŠāļāļāđāļāđāļāļ āļēāļāļāļēāļĢāđāļāļāđāļāļĢāļāđāļāļĨāļąāļāļĐāļāļ°āļāļĢāļ§āļĒ 3 āļĄāļīāļāļī (3D Cone Scalable Thread Visualization āđāļĨāļ°āļāļ°āļāļđāļ
āļāļĢāļ§āļāļŠāļāļāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ āđāļāļāļēāļĢāļāđāļāļŦāļēāļāļēāļĢāđāļĒāđāļāļāļąāļāđāļāđāļāđāļāļĄāļđāļĨ āđāļāđāđāļāļĒ Synthetic Program
15. 7
āļĢāļđāļāļāļĩāđ 5 Scalable Graph āļāļ°āļāļđāļāđāļŠāļāļāđāļāđāļāļ āļēāļāļāļēāļĢāđāļāļāđāļāļĢāļāđāļāļĨāļąāļāļĐāļāļ°āļāļĢāļ§āļĒ 3 āļĄāļīāļāļī (Kim, Lom, & Jun, 2007)
Data Dependence
āđāļāđāļāļāļēāļĢ āļĢāļāļāļąāļāļāļķāļāđāļĨāļ°āļāļēāļĢāļāđāļēāļāļāđāļēāļāļāļāļāđāļāļĄāļđāļĨāļĨāļāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģ āļāļĩāđāļāđāļāļāļāļīāļāļēāļāļēāđāļāđāļĢāļ·āđāļāļāļāļāļāļĨāļģāļāļąāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨ
āļāļāļāļāļąāļ§āđāļāļĢāđāļāđāļāļĢāđāļāļĢāļĄ āđāļāļĒāļŠāļēāļĄāļēāļĢāļāđāļāđāļāļāļĢāļ°āđāļ āļāđāļāđāļāļąāļāļāļĩāđ
1. Flow Dependence (or true dependence) : (RAW: read after write)
2. Antidependence : (WAR: write after read)
3. Output Dependence: (WAW: writer after write)
āļĢāļđāļāļāļĩāđ 6 āđāļŠāļāļ Data dependence āđāļĨāļ° Graph
āļāļēāļĢāļ§āļīāđāļāļĢāļēāļ°āļŦāđ loop carried dependency
Loop dependence āļāļ·āļāļāļēāļĢāļāļĩāđāđāļāļŦāļāļķāđāļāļĢāļāļāļāļēāļĢāļ§āļāļĨāļđāļāđāļāđāļĨāļ°āļāļĢāļąāđāļ statement āļāļēāļĢāļāļģāļāļēāļāļāđāļēāļāđāļāļĨāļđāļāļĄāļĩ
dependency āļāļąāļāļĢāļ°āļŦāļ§āđāļēāļāļĨāļđāļ āļāļĨāđāļēāļ§āļāļ·āļāļāđāļēāļāđāļāļāļēāļĢāļāļģāļāļēāļāļāļāļāļĨāļđāļāļĄāļĩāļāđāļāļĄāļđāļĨāļāļĩāđāđāļāļīāļāļāļ§āļēāļĄāđāļāļĩāđāļĒāļ§āđāļāļ·āđāļāļāļāļąāļāđāļāļĨāļąāļāļĐāļāļ°āļāļāļ
Data dependency āļāļģāđāļŦāđāļĨāļđāļāļāļąāđāļāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāļĒāļāļēāļĢāđāļāđāļāļāļēāļĢāļāļģāļāļēāļāļāļāļāđāļāđāļāđāļāļĢāļāļĒāđāļāļĒāđāđāļĄāđāđāļāđ
āļŠāļīāđāļāļāļĩāđāļāđāļāļāļāļīāļāļēāļĢāļāļēāđāļāļāļēāļĢāļ§āļīāđāļāļĢāļēāļ°āļŦāđ loop carried dependency āļĄāļĩāļāļąāļāļāļĩāđ
1. Iteration Space
āđāļāđāļāļāļąāļ§āļāļāļāļāļģāļāļ§āļāļāļĢāļąāđāļāļāļĩāđāđāļāļīāļāļāļēāļĢāļ§āļāļĨāļđāļ āļāļķāđāļāļŦāļĄāļēāļĒāļāļ§āļēāļĄāļ§āđāļē loop āļĄāļĩāļāļēāļĢāļāļ§āļēāļāļāļ·āđāļāļāļĩāđāđāļāđāļāđāļēāđāļ āđāļāđāļ
do i = 1,100
A(i) = A(i)+1
enddo
āļĢāļđāļāļāļĩāđ 7 Iteration Space āļāļāļ Array 1 āļĄāļīāļāļī
16. 8
2. Iteration Vector
do j = 1,6
do i = 1,5
A(j,i) = A(j-1,i-1)+1
enddo
enddo
Iteration Vector āđāļāđāļāļāđāļēāļāļĩāđāļāļāļāļāļāļēāļ āđāļĨāļ°āļāļīāļĻāļāļēāļāļāļāļ iāļāļķāđāļāđāļāđāļāļāļąāļ§āļāļģāļŦāļāļāļāļēāļĢāļ§āļāļĨāļđāļ āļ§āđāļēāļāđāļē iāļĄāļĩāļāļēāļĢāđāļāļīāđāļĄāļŦāļĢāļ·āļ
āļĨāļ āđāļāđāļāļāļīāļĻāļāļēāļāđāļ
āļĢāļđāļāļāļĩāđ 9 āđāļŠāļāļ Iteration Vector
do i = 1,100
A(i) = A(i-1)+1
enddo
āļāļēāļāļĢāļđāļ Iteration Vector āļāļ·āļāļāđāļē i āļāļĩāđāļĄāļĩāļāļēāļĢāđāļāļīāđāļĄāļāļĩāļĨāļ° 1 āđāļĨāļ°āđāļāļĨāļ·āđāļāļāļāļĩāđāđāļāđāļāļāļīāļĻāļāļēāļāļāļ§āļēāļĄāļ·āļ
3. Dependence and Loop
āđāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāļīāļāļāļāļēāļāļāļąāđāļ āļāļģāđāļāđāļāļāđāļāļāļāļīāļāļēāļĢāļāļēāļāđāļ§āļĒāļ§āđāļē āļāđāļēāļāđāļāļĨāļđāļāļĄāļĩāļāļēāļĢāđāļāļīāļ dependency āđāļāļāđāļāļāļķāđāļ
āđāļāļāļēāļāļĨāļąāļāļĐāļāļ°āļāļāļ dependency āļŠāļēāļĄāļēāļĢāļāđāļāđāđāļāđāļāđ āļāļķāđāļāļŠāđāļāļāļĨāđāļŦāđāļŠāļēāļĄāļēāļĢāļāđāļāđāļāļāļēāļĢāļāļģāļāļēāļāđāļāđāļāļŠāđāļ§āļāļĒāđāļāļĒāđāļāļĩāđ
āļŠāļēāļĄāļēāļĢāļāļāļģāļāļēāļāļāļĢāđāļāļĄāļāļąāļāđāļāđ
āļĨāļąāļāļĐāļāļ°āļāļāļ Dependency
- Loop-independent dependence
āļĢāļđāļāļāļĩāđ 10 Loop-independent dependence
- Loop-carried dependences
4. Distance Vectors
āđāļāđāļāļāđāļēāļāļĩāđāļāļāļāļ§āđāļē āļāđāļē output āļāļĩāđāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāļāđāļāļāļŦāļāđāļē āļāļ°āđāļāđāļāļāđāļē input āļāļĩāđāļāļģāļŠāļąāđāļāļāđāļāļĄāļē āļāļķāđāļāļāļĒāļđāđāđāļāļĨāļđāļāđāļāļĩāļĒāļ§āļāļąāļ āđāļāļĒ
āļĄāļĩāļĢāļ°āļĒāļ°āļŦāđāļēāļ āđāļāđāļāđāļāđāļēāđāļ āđāļāļĒāļŦāļēāļāđāļē Distance Vector āđāļāđāļāļēāļ v = iT â iS (targetâ source)
āļĢāļđāļāļāļĩāđ 12 Distance Vector
do i = 1,100
A(i) = B(i) + 1
C(i) = A(i) * 2
enddo
do i = 1,6
do j = 1,5
A(i,j) = A(i-1,j-2)+1
enddo
enddo
Distance Vector : (1,2)
do i = 1,100
A(i) = B(i) + 1
C(i) = A(i-1) * 2
enddo
āļĢāļđāļāļāļĩāđ 8 Iteration Space āļāļāļ Array 2 āļĄāļīāļāļī
āļĢāļđāļāļāļĩāđ 11 Loop-carried dependence
17. āļĢāļđāļāļāļĩāđ 14 āđāļŠāļāļ āļāļąāļ§āļāļĒāđāļēāļāļāļĩāđ 1 āļāļāļāļĨāļđāļāļāđāļāļīāļ loop carried dependency āļāļķāđāļāļŠāļēāļĄāļēāļĢāļāļāļģāļāļēāļĢāđāļāđāđāļ dependency
9
āļ§āļīāđāļāļĢāļēāļ°āļŦāđāļŦāļē loop carried dependency
āđāļāļāļēāļĢāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄ āđāļāļīāļāļāļāļēāļ āļāļąāđāļ āļŠāļīāđāļāđāļĢāļāļāļĩāđāļāđāļāļāļāļģāļāļķāļāļāļķāļāļāļąāđāļāļāļ·āļ āļāļēāļĢāļāļīāļāļēāļĢāļāļēāļ§āđāļēāđāļāđāļāđāļāļŠāđāļ§āļāđāļāļŠāļēāļĄāļēāļĢāļāļāļģāļāļēāļĢ
āļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāļīāļāļāļāļēāļāđāļāđ āđāļāļĒāļāđāļāļāļ§āļīāđāļāļĢāļēāļ°āļŦāđ āļ§āđāļēāđāļāļīāļ dependency āļŦāļĢāļ·āļāđāļĄāđ āđāļāļĒāļŦāļēāļāļēāļāļāļēāļĢāļŦāļēāļāđāļēāļāļāļ iteration space āđāļĨāļ°
āļāđāļēāļāļāļ distance vector āđāļāļĒāļāļąāđāļāļŠāļāļāļāļ°āļāļģāđāļŦāđāļāļĢāļēāļāļ§āđāļēāļāļēāļĢāļāļģāļāļēāļāļāļāļāļĨāļđāļāļāļąāđāļ āļĄāļĩ input āđāļāļāļĩāđāļĢāļ output āļāļ·āđāļāļāļĒāļđāđāļāļķāđāļāļŦāļĄāļēāļĒāļāļ§āļēāļĄ
āļ§āđāļēāđāļāļāļēāļĢāļāļģāļāļēāļāļāļąāđāļāđāļāļīāļ dependency āļāļķāđāļāđāļāļāļąāđāļāļāđāļāļĄāļēāļāļ·āļāļāļēāļĢāļ§āļīāđāļāļĢāļēāļ°āļŦāđāļ§āđāļē dependency āļŠāļēāļĄāļēāļĢāļāđāļāđāđāļāđāļāđāļŦāļĢāļ·āļāđāļĄāđ āļāđāļē
āļŠāļēāļĄāļēāļĢāļāđāļāđāđāļ āđāļāđ āļŦāļĄāļēāļĒāļāļ§āļēāļĄāļ§āđāļē āđāļāđāļāļŠāđāļ§āļāļāļąāđāļāļŠāļēāļĄāļēāļĢāļāļāļģāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāļīāļāļāļāļēāļāđāļāđ
āļāļēāļāđāļāđāļāļāļąāļ§āļāļĒāđāļēāļ
āļ§āļīāđāļāļĢāļēāļ°āļŦāđāļŦāļē Distance vectors āđāļāđ
Distance vectors : (1,0) for accesses to A
(0,1) for accesses to B
A āđāļāļīāļ loop carries dependency āļāļĩāđāļĨāļđāļ i
B āđāļāļīāļ loop carries dependency āļāļĩāđāļĨāļđāļ j
Loop Transformations
do i = 1,5
do j = 1,5
A(i,j) = B(i-1,j)+1
B(i,j) = A(i, j-1) * 2
enddo
enddo
āļĢāļđāļāļāļĩāđ 13 āđāļŠāļāļāļāļēāļĢāļ§āļīāđāļāļĢāļēāļ°āļŦāđ loop carried dependency
āļĨāļąāļāļĐāļāļ°āļāļāļāļĨāļđāļāļāđāļēāļāļĨāđāļēāļāļāļĩāđ āđāļāđāļāļĨāļđāļāļāļĩāđāđāļāļīāļ loop carried dependency āļāļķāđāļāļŠāļēāļĄāļēāļĢāļāļāļģāļāļēāļĢāđāļāđāđāļ
dependency āļāļĩāđāđāļāļīāļāļāļķāđāļāđāļāđ āđāļāļĒāļāļēāļĢāļŠāļĨāļąāļāļāļēāļĢāļāļģāļāļēāļāļāļāļāļĨāļđāļāļāđāļēāļāđāļ āļāļąāļāļĨāļđāļāļāđāļēāļāļāļāļ āļāļģāđāļŦāđāļŠāļēāļĄāļēāļĢāļāđāļāđāļāļāļēāļāļĒāđāļāļĒ
āđāļāļ·āđāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāļīāļāļāļāļēāļāđāļāđ
do i = 1,6
do j = 1,5
A(i,j) = A(i-1,j-2)+1
enddo
enddo
do j = 1,5
do i = 1,6
A(i,j) = A(i-1,j-2)+1
enddo
enddo
āļĢāļđāļāļāļĩāđ 15 āđāļŠāļāļ āļāļąāļ§āļāļĒāđāļēāļāļāļĩāđ 2 āļāļāļāļĨāļđāļāļāđāļāļīāļ loop carried dependency āļāļķāđāļāļŠāļēāļĄāļēāļĢāļāļāļģāļāļēāļĢāđāļāđāđāļ dependency
18. āļāļēāļāļāļēāļĢāļĻāļķāļāļĐāļēāđāļāļĢāļ·āđāļāļāļĄāļ·āļāđāļĢāļĩāļĒāļāļĢāļđāđāļŠāļģāļŦāļĢāļąāļāļāļķāļāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄ āđāļāļĒāđāļāļĢāđāļāļĢāļĄāđāļĨāđāļāļāļĩ (āļĪāļāļāļīāļĢāļāļāļąāļĒ, 2550)
10
āļāļķāđāļāđāļāđāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāđāļ§āļĒāļŠāļāļāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāđāļāļīāļāļĨāļģāļāļąāļāļĢāļđāļāđāļāļāļŦāļāļķāđāļ
āļĢāļđāļāļāļĩāđ 16 āđāļāļĢāđāļāļĢāļĄāđāļĨāđāļāļāļĩ (āļĪāļāļāļīāļĢāļāļāļąāļĒ, 2550)
āđāļĨāļ°āļāļēāļāļāļēāļĢāļĻāļķāļāļĐāļēāđāļĢāļ·āđāļāļāļāļāļāļāļēāļĢāļāļąāļāļāļēāđāļāļĢāđāļāļĢāļĄāđāļāļīāļāļāļāļēāļ āļāļģāđāļŦāđāļāļĢāļēāļāļ§āđāļē āđāļāļĢāđāļāļĢāļĄāđāļāļĨāļąāļāļĐāļāļ°
āđāļāļĢāļ·āđāļāļāļĄāļ·āļāđāļĢāļĩāļĒāļāļĢāļđāđāļŠāļēāļĄāļēāļĢāļāļāđāļ§āļĒāđāļŦāđāđāļāļĢāđāļāļĢāļĄāđāļĄāļāļĢāđāļĄāļĩāļāļĨāļŠāļąāļĄāļĪāļāļāļīāđāļāļēāļāļāļēāļĢāđāļĢāļĩāļĒāļāđāļāļīāđāļĄāļĄāļēāļāļāļķāđāļ āļāļĢāļ°āļāļāļāļāļąāļāđāļāļ§āđāļāđāļĄ
āļāļāļāļāļāļĄāļāļīāļ§āđāļāļāļĢāđāđāļāļāļāļēāļāļ āļāļēāļĢāļāļāļāđāļāļāļĢāļ°āļāļāļāļāļĄāļāļīāļ§āđāļāļāļĢāđāđāļĢāļīāđāļĄāđāļŦāđāļāļ§āļēāļĄāļŠāļāđāļāļāļąāļāļāļēāļĢ āđāļāļīāđāļĄāļāļ§āļēāļĄāđāļĢāđāļ§āđāļāļāļēāļĢ
āļāļĢāļ°āļĄāļ§āļĨāļāļĨ āđāļāļĒāļāļāļāđāļāļāđāļŦāđāđāļāļĢāļ·āđāļāļāļāļāļĄāļāļīāļ§āđāļāļāļĢāđāļĄāļĩāļŦāļĨāļēāļĒāļŦāļāđāļ§āļĒāļāļĢāļ°āļĄāļ§āļĨāļāļĨ āļāļķāđāļāļāļ°āļāđāļ§āļĒāļĨāļāđāļ§āļĨāļēāđāļāļāļēāļĢ
āļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļŦāđāļĨāļāļĨāļ āđāļĨāļ°āđāļāļīāđāļĄāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāđāļŦāđāļāļąāļāļāļāļĄāļāļīāļ§āđāļāļāļĢāđāđāļāđāđāļāđāļāļāļĒāđāļēāļāļĄāļēāļ āļāļąāļāļāļąāđāļāļāļēāļĢāļāļģāļāļēāļāđāļāļ
āļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāļīāļāļāļāļēāļāļāļķāļāļĄāļĩāđāļāļ§āđāļāđāļĄāļ§āđāļēāļāļđāļāļāļģāđāļāđāļāđāļāļąāļāļĄāļēāļāđāļāļāļāļēāļāļāļāļąāļāđāļāļĨāđ āđāļĨāļ°āļĒāļąāļāļāļēāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāļŠāļģāļŦāļĢāļąāļāļāļēāļĢ
āļāđāļ§āļĒāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāđāļāļīāļāļāļāļēāļ āļāļķāļāđāļāđāļāđāļĢāļ·āļāļāļāļĩāđāļāđāļēāļŠāļāđāļāļāļĩāđāļāļ°āļŠāļĢāđāļēāļāđāļāļĢāđāļāļĢāļĄāđāļāļ·āđāļāļāđāļ§āļĒāđāļāļĢāđāļāļĢāļĄāđāļĄāļāļĢāđāđāļāļāļēāļĢāđāļāļĩāļĒāļ
āđāļāļĢāđāļāļĢāļĄāđāļāļīāļāļāļāļēāļāļāļķāđāļāļĄāļē
āļāļēāļĢāļāļąāļāļāļēāđāļāļĩāđāļĒāļ§āļāļąāļāļāļēāļĢāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāđāļāļīāļāļāļāļēāļāļāđāļāļāļŦāļāđāļēāļāļąāđāļāļĄāļĩāđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāļĩāđāļāļđāļāļāļąāļāļāļēāļāļķāđāļāļĄāļēāļāļĄāļēāļĒ
āđāļāļĒāļŠāđāļ§āļāđāļŦāļāđāļāļ°āđāļāđāļāļāļēāļĢāđāļŠāļāļāļ āļēāļāļāļēāļĢāļāļģāļāļēāļāļāļāļāđāļāļĢāđāļāļĢāļĄāļāļĩāđāļāļģāļāļēāļāđāļāļīāļāļāļāļēāļāļāļĩāđāļĄāļĩāļāļ§āļēāļĄāļāļąāļāļāđāļāļāđāļāļ·āđāļāđāļŦāđ
āđāļāđāļēāđāļāđāļāđāļāđāļēāļĒāļāļķāđāļ āđāļĨāļ°āđāļāļ·āđāļāļāļĢāļ§āļāļŦāļēāļāļ§āļēāļĄāļāļīāļāļāļĨāļēāļāļāļēāļāļēāļĢāļāļģāļāļēāļāđāļāļīāļāļāļāļēāļ āđāļĨāļ°āļāļēāļāļāļēāļĢāļ§āļīāļāļąāļĒāļāđāļēāļāđāđāļāđāļāļĩāđāđāļŦāđ
āļāļĢāļ°āļŦāļāļąāļāļ§āđāļēāļāļēāļĢāļāļģāļāļēāļāđāļāļīāļāļāļāļēāļāļĄāļĩāļĨāļąāļāļĐāļāļ°āđāļāļĢāļāļŠāļĢāđāļēāļāļāļĩāđāļāļąāļāļāđāļāļāļāļķāđāļāđāļāļīāļāļāļēāļāļāļēāļĢāļāļģāļāļēāļāļāļāļāļŠāđāļ§āļāļĒāđāļāļĒāđāļāđāļ
āļāļģāļāļ§āļāļĄāļēāļ āđāļĨāļ°āļāļēāļĢāđāļŠāļāļāđāļāđāļāļĢāļđāļāļ āļēāļāļāļāļāđāļāļĢāļāļŠāļĢāđāļēāļ āđāļĨāļ°āļāļĪāļāļīāļāļĢāļĢāļĄāļāļāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāļīāļāļāļāļēāļāļāļąāđāļāļĄāļĩ
āļāļ§āļēāļĄāļāļģāđāļāđāļāđāļĨāļ°āļŠāļēāļĄāļēāļĢāļāļāđāļ§āļĒāđāļŦāđāđāļāđāļēāđāļāđāļāļĢāđāļāļĢāļĄāđāļāļīāļāļāļāļēāļāđāļāđāļāđāļēāļĒāļāļķāđāļ āļāļđāđāļāļąāļāļāļēāđāļĨāđāļāļĄāļĩāļāļĩāļāļķāļāđāļĨāļ·āļāļāļāļĩāđāļāļ°āļāļąāļāļāļē
āđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāđāļ§āļĒāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāđāļāļīāļāļāļāļēāļāđāļāļĒāđāļŦāđāļāļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļāļāļēāļĢāđāļŠāļāļāļ āļēāļāļāļēāļĢāļāļģāļāļēāļāļāļāļāđāļāļĢāđāļāļĢāļĄāđāļāļīāļ
āļāļāļēāļāđāļāđāļāļŠāļīāđāļāļŠāļģāļāļąāļāļāļĩāđāđāļāļĢāđāļāļĢāļĄāļāđāļāļāļĄāļĩ
19. 11
āļāļĪāļĐāļāļĩāļŦāļĨāļąāļāļāļēāļĢāđāļĨāļ°āđāļāļāļāļīāļāļŦāļĢāļ·āļāđāļāļāđāļāđāļĨāļĒāļĩāļāļĩāđāđāļāđ
1. āļāļēāļĢāļŦāļēāļāđāļēāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļāļ°āļĄāļĩāļŠāđāļ§āļāļāļĩāđāļāļīāļāļāđāļāļāļąāļāļāļđāđāđāļāđ āļāļķāđāļāđāļāđāļāļāļāļāđāļāđāļāļŠāļāļāļŠāđāļ§āļāļŦāļĨāļąāļ āļāļ·āļ
1.1 āđāļ§āļĨāļēāļāļĩāđāđāļāđāļāļēāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāļāļĢāļīāļ (Measured Response Time) āđāļāļŠāđāļ§āļāļāļĩāđāļāļ°āđāļāđāļāļŠāđāļ§āļāļāļĩāđāļĄāļĩ
āļāļēāļĢāđāļŠāļāļāđāļ§āļĨāļēāļāļĩāđāļāļąāļāđāļāđāđāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāļĢāđāļāļĢāļĄāļāļĩāđāļāļđāđāđāļĢāļĩāļĒāļāđāļāļĩāļĒāļāļāļķāđāļāļāļĢāļīāļ āđāļāļĒāļĄāļĩāļŦāļāđāļ§āļĒāđāļāđāļāļĄāļīāļĨāļĨāļīāļ§āļīāļāļēāļāļĩ
(ms)
1.2 āđāļ§āļĨāļēāļāļĢāļ°āļĄāļ§āļĨāļāļĨāļāļĩāđāđāļāđāļāļēāļāļāļēāļĢāļāļģāļāļ§āļ (Theoretical Execution Time) āđāļāļŠāđāļ§āļāļāļĩāđāļāļ°āđāļāđāļ
āļŠāđāļ§āļāļāļĩāđāļĄāļĩāļāļēāļĢāđāļŠāļāļāđāļ§āļĨāļēāđāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāļĢāđāļāļĢāļĄāļāļĩāđāļāļđāđāđāļĢāļĩāļĒāļāđāļāļĩāļĒāļāļāļķāđāļāđāļāļĒāđāļāđāļāļēāļāļāļēāļĢāļāļģāļāļ§āļ āļāļķāđāļāđāļ§āļĨāļē
āļāļąāļāļāļĨāđāļēāļ§āļŠāļēāļĄāļēāļĢāļāļŦāļēāđāļāđāļāļēāļāļŠāļĄāļāļēāļĢāļāļĢāļ°āđāļĄāļīāļāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ (Performance Equation) āđāļāļĒāļŠāļĄāļāļēāļĢ
āļāļĢāļ°āđāļĄāļīāļāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ āļĄāļĩāļāļąāļāļāļĩāđ
Execution Time = Instruction Count * CPI * 1/Clock Rate
āļāļĢāļ°āļĄāļēāļāļāļ§āļēāļĄāđāļĢāđāļ§āđāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨ (Execution Time Equation)
āļāļģāļāļāļīāļāļēāļĒāļŠāļĄāļāļēāļĢ
1. Execution Time āļāļ·āļ āđāļ§āļĨāļēāđāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨ āļĄāļĩāļŦāļāđāļ§āļĒāđāļāđāļ āļ§āļīāļāļēāļāļĩ (second)
2. Instruction Count āļāļ·āļ āļāļģāļāļ§āļāļāļģāļŠāļąāđāļāļāļĩāđāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāđāļāļĢāđāļāļĢāļĄ
3. CPI āļŦāļĢāļ·āļ Cycle Per Instruction āļāļ·āļ āļāļģāļāļ§āļāļĢāļāļāļāļēāļĢāļāļģāļāļēāļāļāđāļāļŦāļāļķāđāļāļāļģāļŠāļąāđāļ
4. Clock Rate āļāļ·āļ āļāļ§āļēāļĄāļāļĩāđāļāļāļāļŠāļąāļāļāļēāļāļāļēāļŽāļīāļāļēāļāļāļāļŦāļāđāļ§āļĒāļāļĢāļ°āļĄāļ§āļĨāļāļĨ āļĄāļĩāļŦāļāđāļ§āļĒāđāļāđāļ āđāļŪāļīāļĢāđāļ (Hz)
2. āļāļĢāļ°āđāļ āļāļāļļāļāļāļģāļŠāļąāđāļāļ āļēāļĐāļēāļāļāļāđāļāļĢāļ·āđāļāļ āđāļāđāđāļāđ
1. Data Transfer Instruction
2. Control Transfer Instruction
3. I/O Instruction
4. Floating-point Instructions
5. Binary Arithmetic Instructions
6. No Operation Instructions
20. 12
āđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāļĩāđāđāļāđāđāļāļāļēāļĢāļāļąāļāļāļē
1. āļ āļēāļĐāļē Java
2. Eclipse RCP
3. Java CUP
4. JFlax
5. JFreeChart
āļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāļāļĩāđāđāļāđāļāļąāļāļāļēāđāļāđāļāļīāļāđāļāļāļāļīāļ (Software Specification)
1. Input/Output Specification
1.1 Input Specification
- āđāļāđāļāļ āļēāļĐāļē C++ āļāļĩāđāļāļđāđāđāļāđāđāļāļĩāļĒāļāļāļķāđāļ
1.2 Output Specification
- āđāļāđāļāđāļāļĢāđāļāļĢāļĄāļāļĩāđāļāļģāļāļēāļĢāđāļŪāđāļĨāļāđ
- āđāļŠāļāļāļāļĨāļāļēāļĢāļāļāļĄāđāļāļĨāđāđāļāļĢāđāļāļĢāļĄ āđāļĨāļ° Error āļāļāļāđāļāļĢāđāļāļĢāļĄāļāļĩāđāļāļđāđāđāļāđāđāļāļĩāļĒāļāļāļķāđāļ
- āđāļŠāļāļ Instruction āļāđāļ§āļĒ Pie Chart
- āđāļŠāļāļ Excuetion Time āļāđāļ§āļĒ Bar Chart
2. Functional Specification
2.1 āļŠāļēāļĄāļēāļĢāļāļ§āļīāđāļāļĢāļēāļ°āļŦāđāđāļĨāļ°āđāļŪāđāļĨāļāđ(highlight)āđāļ§āļĒāļēāļāļĢāļāđāļāļāļāđāļāļĢāđāļāļĢāļĄ
2.2 āļŠāļēāļĄāļēāļĢāļ Compile āđāļĨāļ° Run āđāļāļĢāđāļāļĢāļĄāļāļĩāđāļāļđāđāđāļāđāđāļāļĩāļĒāļāļāļķāđāļāđāļāđ
2.3 āļŠāļēāļĄāļēāļĢāļāļĢāļēāļĒāļāļēāļ error āļāļāļāđāļāļĢāđāļāļĢāļĄ
2.4 āļŠāļēāļĄāļēāļĢāļāļāļģāļāļ§āļ Excuetion Time āļāļāļāđāļāļĢāđāļāļĢāļĄāđāļĨāļ°āđāļŠāļāļāļāļāļāļĄāļēāđāļāļĢāļđāļāđāļāļāļāļāļ Bar Chart
āđāļāđ
2.5 āļāļģāļāļ§āļāļŦāļē Instruction count āļāļāļāđāļāļĢāđāļāļĢāļĄ āđāļĨāļ°āđāļŠāļāļāļāļāļāļĄāļēāđāļāļĢāļđāļāđāļāļāļāļāļ Pie Chart āđāļāđ
21. 13
āļāļāļāđāļāļāđāļĨāļ°āļāđāļāļāļģāļāļąāļāļāļāļāđāļāļĢāđāļāļĢāļĄāļāļĩāđāļāļąāļāļāļē
Æ āļāļēāļĢāļŠāļĢāđāļēāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāđāļĢāļĩāļĒāļāļĢāļđāđāļāļāļ§āļīāļāđāļāļ§āļŠāđ
Æ āļāļēāļĢāļŠāļĢāđāļēāļāļŠāđāļ§āļāļ§āļīāđāļāļĢāļēāļ°āļŦāđ āđāļĨāļ°āđāļŪāđāļĨāļāđāļ āļēāļĐāļē
Æ āļāļēāļĢāļŠāļĢāđāļēāļāļŠāđāļ§āļāļ§āļīāđāļāļĢāļēāļ°āļŦāđāđāļāļ·āđāļāļŠāđāļāđāļŠāļĢāļīāļĄāļāļēāļĢāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāļāļĩāđāļāļĢāļ°āļŦāļāļąāļāļāļķāļāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāđāļĨāļ°āļāļĨāļąāļāļāļēāļ
āļāļĨāļļāđāļĄāļāļđāđāđāļāđāđāļāļĢāđāļāļĢāļĄ
āļāļąāļāļĻāļķāļāļĐāļēāđāļĨāļ°āļāļđāđāļŠāļāđāļāđāļāļĩāđāļĒāļ§āļāļąāļāļāļēāļĢāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāđāļāļīāļāļāļāļēāļ āļāļķāđāļāđāļāđāļāļāļ·āđāļāļāļēāļāļāļāļāļāļēāļĢāļāļąāļāļāļēāļāļāļ
āļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāļŦāļāđāļ§āļĒāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāļāļĄāļąāļĨāļāļīāļāļāļĢāđ āđāļāļ·āđāļāđāļāļīāđāļĄāļĻāļąāļāļĒāļ āļēāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨ
āļāļĨāļāļēāļĢāļāļāļŠāļāļāđāļāļĢāđāļāļĢāļĄ
1. āļāļāļŠāļāļāļāļēāļĢāđāļŪāđāļĨāļāđāļ āļēāļĐāļēāļāļāļāđāļĨāđāļāļĄāļĩāļāļĩ
āļāļĨāļāļēāļĢāļāļāļŠāļāļ āļĄāļĩāļāļēāļĢ āđāļŪāđāļĨāļāđāļŠāļĩāļāļāļāļāļģāļŠāļģāļāļąāļ āđāļāđāļāļđāļāļāđāļāļ
2. āļāļāļŠāļāļāļāļēāļĢ Compile āđāļĨāļ° Run āđāļāļĢāđāļāļĢāļĄāļāļĩāđāļāļđāđāđāļāđāđāļāļĩāļĒāļāļāļķāđāļ
āļāļĨāļāļēāļĢāļāļāļŠāļāļ āļŠāļēāļĄāļēāļĢāļ Compile āđāļĨāļ° Run Program āļāļĩāđāļāļđāđāđāļāđāđāļāļĩāļĒāļāļāļķāđāļāđāļāđāļāļđāļāļāđāļāļ
3. āļāļāļŠāļāļāļāļēāļĢāđāļŠāļāļ error āļāļāļāđāļāļĢāđāļāļĢāļĄ
āļāļĨāļāļēāļĢāļāļāļŠāļāļ āļĄāļĩāļāļēāļĢāđāļŠāļāļ error āđāļāļŠāđāļ§āļāļāļāļ Console View āđāļāđ
4. āļāļģāļāļ§āļ Excuetion Time āļāļāļāđāļāļĢāđāļāļĢāļĄ
āļāļĨāļāļēāļĢāļāļāļŠāļāļ āļĄāļĩāļāļēāļĢāđāļŠāļāļāļāļĨāļāļēāļĢāļāļģāļāļ§āļ Excuetion Time āļāđāļ§āļĒ Bar Chart
5. āļāļģāļāļ§āļāļŦāļē Instruction count āļāļāļāđāļāļĢāđāļāļĢāļĄ
āļāļĨāļāļēāļĢāļāļāļŠāļāļ āļĄāļĩāļāļēāļĢāđāļŠāļāļāļāļĨāļāļēāļĢāļāļģāļāļ§āļ Instruction count āļāđāļ§āļĒ Pie Chart
22. 14
āļāļąāļāļŦāļēāđāļĨāļ°āļāļļāļāļŠāļĢāļĢāļ
â āđāļĨāđāļāļĄāļĩāļāļĩāļĄāļĩāļāļēāļĢāļāļąāļāļāļēāļāļĩāđāļāđāļāļĒāļāđāļēāļāļāļąāļāļāđāļāļ āļāļēāļĢāļāļąāļāļāļēāļāļķāļāļāđāļāļāļāļđāļāđāļāđāļāļāļāļāđāļāđāļāļŠāđāļ§āļāđ āđāļĨāļ°āļāļ°āļĄāļĩāļāļēāļĢāļāļąāļāļāļē
āļāļĩāđāđāļāļāļāđāļēāļāļāļąāļ āļāļķāļāļāđāļāļāđāļāđāđāļ§āļĨāļēāđāļāļāļēāļĢāļ§āļīāđāļāļĢāļēāļ°āļŦāđāđāļĨāļ°āļāļīāļāļēāļĢāļāļēāđāļāđāļāđāļĨāļ°āļŠāđāļ§āļ
â āđāļĨāđāļāļĄāļĩāļāļĩ āļĄāļĩāļŠāđāļ§āļāļāļĩāđāđāļāđāļ Compiler āļāļķāđāļāļāđāļāļāļĄāļĩāļāļēāļĢāđāļāļĩāļĒāļāđāļāļŠāđāļ§āļ Passer āđāļĨāļ° Scanner āļāļĩāđāļāđāļāļāđāļāđāđāļ§āļĨāļēāđāļ
āļāļēāļĢāđāļāļĩāļĒāļ āđāļĨāļ°āļāđāļāļāļĄāļĩāļāļēāļĢāļāļĢāļ§āļāļŠāļāļ
â āļĄāļĩāļŠāđāļ§āļāļāļĩāđāļāđāļāļāđāļāđāđāļāļĢāļ·āđāļāļāļĄāļ·āļāđāļāđāļēāļĄāļēāļāđāļ§āļĒāđāļāļāļēāļĢāļāļąāļāļāļēāđāļāļĢāļāļāļēāļĢ āđāļāđāļ Eclipse RCP āļāđāļāļķāļāļđāđāļāļąāļāļāļēāđāļĄāđāļĄāļĩ
āļāļ§āļēāļĄāļāļļāđāļāđāļāļĒ āđāļĨāļ°āļāđāļāļāļĄāļĩāļāļēāļĢāļĻāļķāļāļĐāļēāđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāļĩāđāđāļāđāļēāļĄāļēāļāđāļ§āļĒāđāļāļāļēāļĢāļāļąāļāļāļē āļāļķāđāļāļāļēāļāļāđāļāļāđāļāđāđāļ§āļĨāļēāđāļ
āļāļēāļĢāļĻāļķāļāļĐāļēāļĄāļēāļ
â āđāļĨāđāļāļĄāļĩāļāļĩ āļāđāļāļāļĄāļĩāļāļēāļĢāļāļģāļŠāđāļ§āļāļāđāļēāļāđ āļāļĩāđāđāļāđāļāļąāļāļāļēāļāļķāđāļāļĄāļēāļāļĢāļ°āļāļāļāđāļāđāļāļĢāļ°āļāļāđāļŦāļāđ āđāļāļĒāđāļāđāļĨāļ°āļŠāđāļ§āļāļāļģāļāļēāļĢ
āļāļąāļāļāļēāđāļāļĒāđāļāđāļ§āļīāļāļĩāđāļāļāļāđāļēāļāļāļąāļ āđāļĨāļ°āļāļ°āļĄāļĩāļāļąāļāļŦāļēāđāļāļāļēāļĢāļāļĢāļ°āļāļāļāđāļāđāļēāļāļąāļāđāļāđāļāļĢāļ°āļāļāđāļŦāļāđ
āđāļāļ§āļāļēāļāđāļāļāļēāļĢāļāļąāļāļāļēāđāļĨāļ°āļāļĢāļ°āļĒāļļāļāļāđāđāļāđāļĢāđāļ§āļĄāļāļąāļāļāļēāļāļāļ·āđāļāđ āđāļāļāļąāđāļāļāđāļāđāļ
āđāļāļĢāļāļāļēāļāđāļĨāđāļāļĄāļĩāļāļĩāđāļāđāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāđāļ§āļĒāļŠāļāļāļ āļēāļĐāļēāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāđāļāļīāļāļāļāļēāļ āļāđāļ§āļĒāļ āļēāļĐāļēāļāļĩāļāļĨāļąāļŠāļāļĨāļąāļŠ
āđāļāļĢāļēāļ°āđāļāļ·āđāļāļāļāļēāļāļāļāļĄāļāļīāļ§āđāļāļāļĢāđāļŠāđāļ§āļāđāļŦāļāđāļāļđāļāļāļąāļāļāļēāđāļŦāđāļĄāļĩāļŦāļāđāļ§āļĒāļāļĢāļ°āļĄāļ§āļĨāļāļĨāļŦāļĨāļēāļĒāļāļāļĢāđ āļāļąāļāļāļąāđāļāļāļđāđāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄ
āļāļ°āļāđāļāļāđāļāļĨāļĩāđāļĒāļāļ§āļīāļāļĩāļāļēāļĢāļāļąāļāļāļēāđāļāļĢāđāļāļĢāļĄāļāļēāļāđāļāļīāļāļĨāļģāļāļąāļāļĄāļēāđāļāđāļāđāļāļīāļāļāļāļēāļ āđāļāļ·āđāļāđāļāđāļāļŠāļīāđāļāļāļĩāđāļāļ°āđāļāļīāđāļĄāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļāļāļ
āđāļāļĢāļ·āđāļāļāļāļĢāļ°āļĄāļ§āļĨāļāļĨāļŦāļĨāļēāļĒāļāļāļĢāđāđāļŦāđāļāļģāļāļēāļāđāļāđāđāļāđāļĄāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļĒāļīāđāļāļāļķāđāļ āđāļĨāļ°āđāļāļ·āđāļāļāļāļēāļāļŠāļ āļēāļ§āļ°āđāļĨāļāđāļāļāļąāļāļāļļāļāļąāļāļĄāļĩāļāļēāļĢ
āļāļĢāļ°āļŦāļāļąāļāļāļķāļāļāļēāļĢāđāļāđāļāļĨāļąāļāļāļēāļāļĄāļēāļāļāļķāđāļ āļāļēāļĢāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāļāļĩāđāļāļģāļāļķāļāļāļķāļāļāļēāļĢāļāļĢāļ°āļŦāļĒāļąāļāļāļĨāļąāļāļāļēāļāļāļķāļāđāļāđāļāļāļĩāļāļŠāļīāđāļāļŦāļāļķāđāļāļāļĩāđ
āļāđāļāļāđāļŦāđāļāļāļ§āļēāļĄāļŠāļģāļāļąāļāļāļĩāļāđāļāđāļāļāļąāļ āđāļĨāđāļāļĄāļĩāļāļĩāļāļķāļāđāļāđāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāļĩāļāļ°āļāđāļ§āļĒāđāļŦāđāļāļđāđāđāļāđāļāļķāļāļāļģāđāļāđāļāļāđāļāļāļĄāļĩāļāļēāļĢāđāļĢāļĩāļĒāļāļĢāļđāđāļāļēāļĢāđāļāļĩāļĒāļ
āđāļāļĢāđāļāļĢāļĄāđāļāļīāļāļāļāļēāļ āđāļĨāļ°āđāļāļāļāļ°āđāļāļĩāļĒāļ§āļāļąāļāļāđāļāđāļ§āļĒāđāļŦāđāļāļđāđāđāļāđāđāļŦāđāļāļāļķāļāļāļēāļĢāđāļāđāļāļĨāļąāļāļāļēāļāļāļāļāđāļāļĢāđāļāļĢāļĄāļāļĩāđāđāļāđāđāļāļĩāļĒāļāļāļķāđāļāđāļāđāļāļāļąāļ
āđāļāļ·āđāļāđāļŦāđāļāļđāđāđāļāđāļāļģāđāļāļāļĢāļąāļāļāļĢāļļāļ āđāļāļ·āđāļāđāļŦāđāđāļāļĢāđāļāļĢāļĄāļāļĩāđāļāļąāļāļāļēāļĄāļĩāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļĒāļīāđāļāļāļķāđāļ
āđāļāļ·āđāļāļāļāļēāļāđāļĨāđāļāļĄāļĩāļāļĩāđāļāđāļāđāļāļĢāđāļāļĢāļĄāļāļĩāđāļāđāļēāļāļ āļēāļĐāļēāļāļĩāļāļĨāļąāļŠāļāļĨāļąāļŠ āđāļāđāļŠāļēāļĄāļēāļĢāļāļāļąāļāļāļēāđāļāļīāđāļĄāđāļāļīāļĄāđāļāļ·āđāļāļāļģāđāļāđāļāđ
āļ§āļīāđāļāļĢāļēāļ°āļŦāđāļ āļēāļĐāļēāļāļ·āđāļāđ āđāļāđāļ āļāļĩ āļāļēāļ§āļē āļŦāļĢāļ·āļ āļāļĩāļāļēāļ āđāļāļĒāļāļģāļŠāđāļ§āļāļāļāļ Passer āđāļĨāļ° Scanner āļāļāļāđāļĨāđāļāļĄāļĩāļāļĩāđāļāļāļąāļāļāļē
āđāļāļīāđāļĄāđāļāļīāļĄ
23. 15
āļāđāļāļŠāļĢāļļāļāđāļĨāļ°āļāđāļāđāļŠāļāļāđāļāļ°
āđāļāļĢāļāļāļēāļāđāļĨāđāļĄāļĄāļĩāļāļĩāļāļđāļāļāļāļāđāļāļāđāļŦāđāļĄāļĩāđāļāļĢāļāļŠāļĢāđāļēāļāļāļĩāđāļŠāļēāļĄāļēāļĢāļāļāļģāļāļ§āļēāļĄāđāļāđāļēāđāļāđāļāđāļāđāļēāļĒ āļāļķāđāļāļāļđāđāļŠāļāđāļāļŠāļēāļĄāļēāļĢāļ
āļāļģāđāļāļāļąāļāļāļēāļāđāļāđāļŦāđāļĄāļĩāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ āđāļĨāļ°āļāļģāļāļēāļāđāļāđāļŦāļĨāļēāļāļŦāļĨāļēāļĒāļĄāļēāļāļāļķāđāļ āđāļāļĒāļāļēāļĢāļāļąāļāļāļēāđāļŦāđāļĄāļĩāļāļēāļĢāđāļŠāļāļāļāļĨāđāļ
āļĢāļđāļāđāļāļāļāđāļēāļāđ āļāļĩāđāļĄāļĩāļāļ§āļēāļĄāļŦāļĨāļēāļāļŦāļĨāļēāļĒāđāļĨāļ°āđāļŦāđāļāđāļēāļĒāļāđāļāļāļēāļĢāđāļāđāļēāđāļ āđāļāđāļ āļāļēāļĢāđāļāđāļ āļēāļāļāļĢāļ°āļāļāļāļāļēāļĢāđāļŠāļāļāļāļĨ āļ āļēāļ
āļāļĢāļ°āļāļāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨ āļāļēāļĢāđāļāļīāđāļĄāļāļģāļāļāļīāļāļēāļĒ āļŦāļĢāļ·āļ āđāļāļīāđāļĄāđāļāļ·āđāļāļŦāļēāļāļĩāđāļāļ°āđāļāđāļēāļĄāļēāļāđāļ§āļĒāđāļāļāļēāļĢāđāļĢāļĩāļĒāļāļĢāļđāđāđāļāļīāđāļĄāđāļāļīāļĄ
āđāļāļŠāđāļ§āļāļāļāļ āļāļēāļĢāļāļģāļāļ§āļāļŦāļē āļāļļāļāļāļģāļŠāļąāđāļ Instruction count āļŠāļēāļĄāļēāļĢāļāļāļģāđāļāļāļąāļāļāļēāđāļāļāļēāļĢāļŦāļēāļāļĨāļąāļāļāļēāļ
āđāļāļāđāļē āđāļāļ·āđāļāļ§āļīāđāļāļĢāļēāļ°āļŦāđāļāļ§āļēāļĄāļŠāļīāđāļāđāļāļĨāļ·āļāļāļāļĨāļąāļāļāļēāļāļāļāļāđāļāļĢāđāļāļĢāļĄāļāļĩāđāđāļāļĩāļĒāļāđāļāđ
24. 16
āđāļāļāļŠāļēāļĢāļāđāļēāļāļāļīāļ (Reference)
Efopoulos, V., Dagdilelis, V., Evangelidis, G., & Satratzemi, M. (2005). a programming
environment for novices. Proceedings of the 10th annual SIGCSE conference on
Innovation and technology in computer science education (pp. 113-117). Caparica,
Portugal: ACM Press New York, NY, USA.
Fenichel, R. R., Weizenbaum, J., & Yochelson, J. C. (1970). A program to teach programming.
In Communications of the ACM (pp. 141-146). New York: ACM.
Hundhausen, C. D., & Brown, J. L. (2007). An experimental study of the impact of visual
semantic feedback on novice programming. In Journal of Visual Languages and
Computing (pp. 537-559). Orlando, FL, USA: Academic Press, Inc.
Kim, Y.-J., Lom, J.-S., & Jun, Y.-K. (2007). Scalable Thread Visualization for Debugging Data
Race in OpenMP Programs., (pp. 310-321).
Mahim, M., J., C. T., Tiberiu, C., Girish, V., C., G. S., & Mihai, B. (December 2006). Tartan:
evaluating spatial computation for whole program execution. the 12th international
Conference on Architectural Support For Programming Languages and Operating
Systems (pp. 163-174). New York, NY, USA: ACM.
Tan, H.-K., & Cai, W. (1994). VPEcons:Avisual Constructor for Parallel Programming.
Xian, C., Lu, Y.-H., & Li, Z. (2007). A programming environment with runtime energy
characterization for energy-aware applications. the 2007 international symposium on
Low power electronics and design (pp. 141-146). New York, NY, USA: ACM.
āļĪāļāļāļīāļĢāļāļāļąāļĒ, āļ. (2550). āđāļāļĢāļāļāļēāļāļāļąāļāļŦāļēāļāļīāđāļĻāļĐāļĢāļ°āļāļąāļāļāļĢāļīāļāļāļēāļāļĢāļĩ āđāļĢāļ·āđāļāļ āđāļĨāđāļāļāļĩ: āđāļāļĢāļ·āđāļāļāļĄāļ·āļāđāļĢāļĩāļĒāļāļĢāļđāđāđāļāļ·āđāļāļāļķāļāđāļāđāļ
C++ āđāļāļĢāđāļāļĢāļĄāđāļĄāļāļĢāđāļāļĩāđāļĄāļĩāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāđāļĨāļ°āļāļāđāļāļĩāļĒāļ. āļāļĢāļļāļāđāļāļ: āļĄāļŦāļēāļ§āļīāļāļĒāļēāļĨāļąāļĒāļāļĢāļĢāļĄāļĻāļēāļŠāļāļĢāđ.
25. 17
āļ āļēāļāļāļāļ§āļ (Appendix)
āļāļđāđāļĄāļ·āļāļāļēāļĢāļāļīāļāļāļąāđāļāļāļĒāđāļēāļāļĨāļ°āđāļāļĩāļĒāļ
1. MySQL Server Version 5.0 āļāļķāđāļāļĄāļĩāļāļąāđāļāļāļāļāļāļēāļĢāļāļīāļāļāļąāđāļāđāļāļĢāđāļāļĢāļĄ āļāļąāļāļĢāļđāļāļāđāļēāļāļĨāđāļēāļāļāđāļāđāļāļāļĩāđ
1. āđāļĨāļ·āļāļāđāļāļĨāđ Setup
āļĢāļđāļāļāļĩāđ 17 āđāļŠāļāļāļŦāļāđāļēāļāļāđāļāļ·āđāļāđāļĨāļ·āļāļāđāļāļĨāđ Setup
2. āļŦāļĨāļąāļāļāļēāļāļāļķāđāļāļŦāļāđāļēāļāđāļēāļ Setup āđāļŦāđāļāļāļāļļāđāļĄ Next >
26. 18
āļĢāļđāļāļāļĩāđ 18 āļŦāļāđāļēāļāļāļāļēāļĢāđāļĢāļīāđāļĄāļāļīāļāļāļąāđāļāđāļāļĢāđāļāļĢāļĄ
3. āđāļĨāļ·āļāļāļāļīāļāļāļąāđāļāđāļāļĢāđāļāļĢāļĄāđāļāļ Typical āđāļāļ·āđāļāļāļāļēāļāđāļāđāļāļāļēāļĢāļĨāļāđāļāļāļĄāļēāļāļĢāļāļēāļ āļāļēāļāļāļąāđāļāļāļāļāļļāđāļĄ Next >
āļĢāļđāļāļāļĩāđ 19 āđāļĨāļ·āļāļāļāļĢāļ°āđāļ āļāļāļēāļĢāļāļīāļāļāļąāđāļāđāļāļĢāđāļāļĢāļĄ
4. āļāļāļāļļāđāļĄ Install āđāļāļ·āđāļāđāļĢāļīāđāļĄāļāđāļāļāļēāļĢāļāļīāļāļāļąāđāļāđāļāļĢāđāļāļĢāļĄ
āļĢāļđāļāļāļĩāđ 20 āđāļĢāļīāđāļĄāļāđāļāļāļēāļĢāļāļīāļāļāļąāđāļāđāļāļĢāđāļāļĢāļĄ
28. 20
7. āđāļĨāļ·āļāļ Configure the MySQL Server now āļāļēāļāļāļąāđāļāļāļāļāļļāđāļĄ Finish āđāļāļ·āđāļāļāļģāļāļēāļĢāļāļģāļŦāļāļāļāļļāļāļŠāļĄāļāļąāļāļī
āļāļāļāđāļāļĢāđāļāļĢāļĄ
āļĢāļđāļāļāļĩāđ 23 āļŦāļāđāļēāļāļāđāļŠāļāļāļāļēāļĢāđāļŠāļĢāđāļāļŠāļīāđāļāļāļēāļĢāļĨāļāđāļāļĢāđāļāļĢāļĄ
8. āļāļāļāļļāđāļĄ Next > āđāļāļ·āđāļāļāļģāļāļēāļĢāļāļģāļŦāļāļāļāļļāļāļŠāļĄāļāļąāļāļīāļāļāļāđāļāļĢāđāļāļĢāļĄ
āļĢāļđāļāļāļĩāđ 24 āļŦāļāđāļēāļāļāđāļŠāļāļāļāļēāļĢāļāļģāļŦāļāļāļāļļāļāļŠāļĄāļāļąāļāļīāļāļāļāđāļāļĢāđāļāļĢāļĄ
29. 21
9. āđāļĨāļ·āļāļ Standard Configuration āļāļēāļāļāļąāđāļāļāļāļāļļāđāļĄ Next >
āļĢāļđāļāļāļĩāđ 25 āđāļĨāļ·āļāļāļāļĢāļ°āđāļ āļāļāļēāļĢāļāļģāļŦāļāļāļāļļāļāļŠāļĄāļāļąāļāļīāļāļāļāđāļāļĢāđāļāļĢāļĄ
10. āđāļĨāļ·āļāļ Install As Windows Service āđāļĨāļ° Launch the MySQL Server automatically āļāļēāļāļāļąāđāļāļāļ
āļāļļāđāļĄ Next>
āļĢāļđāļāļāļĩāđ 26 āļāļģāļŦāļāļāļ§āļīāļāđāļāļ§āļŠāđāļāđāļāļāļāļąāđāļ
30. 22
11. āđāļĨāļ·āļāļ Modify Security Settings āđāļĨāđāļ§āđāļŠāđāļĢāļŦāļąāļŠāļāđāļēāļ āļŦāļĨāļąāļāļāļēāļāļāļąāđāļāđāļĨāļ·āļāļ Enable root access from
remote machines āđāļĨāđāļ§āļāļāļāļļāđāļĄ Next >
āļĢāļđāļāļāļĩāđ 27 āļāļģāļŦāļāļāļāđāļāļāļāļąāđāļāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļāļāļāđāļāļĢāđāļāļĢāļĄ
12. āļāļāļāļļāđāļĄ Execute āđāļāļ·āđāļāļāļģāļāļēāļĢāļāļģāļŦāļāļāļāļļāļāļŠāļĄāļāļąāļāļīāļāļāļāđāļāļĢāđāļāļĢāļĄ
31. 23
āļĢāļđāļāļāļĩāđ 28 āđāļŠāļāļāļŦāļāđāļēāļāļāļāļāļ°āļāļīāļāļāļąāđāļāļāļēāļĢāļāļģāļŦāļāļāļāļļāļāļŠāļĄāļāļąāļāļīāļāļāļāđāļāļĢāđāļāļĢāļĄ
13. āļāļāļāļļāđāļĄ Finish āđāļāđāļāļāļēāļĢāđāļŠāļĢāđāļāļŠāļīāđāļāļāļēāļĢāļāļģāļŦāļāļāļāļļāļāļĨāļąāļāļĐāļāļ°āļāļāļāđāļāļĢāđāļāļĢāļĄ
āļĢāļđāļāļāļĩāđ 29 āđāļŠāļĢāđāļāļŠāļīāđāļāļāļēāļĢāļāļģāļŦāļāļāļāļļāļāļŠāļĄāļāļąāļāļīāļāļāļāđāļāļĢāđāļāļĢāļĄ
32. 2 . āļāļēāļĢāļāļīāļāļāļąāđāļāđāļāļĢāđāļāļĢāļĄāļāļĩāđāđāļāđāđāļāđāļāļĢāđāļāļĢāļĄāđāļĨāđāļāļĄāļĩāļāļĩ āđāļāļĒāļ āļēāļĒāđāļāđāļāļĢāļ·āđāļāļāļāļāļĄāļāļīāļ§āđāļāļāļĢāđāļāļāļāļāļđāđāđāļāđ āļāđāļāļāļĄāļĩ
GNU make 3.8 āļāļķāđāļāđāļ āđāļĨāļ° āļĄāļĩ GNU gcc āđāļĨāļ° āđāļāļĢāđāļāļĢāļĄāļāļĩāđāļāļģāļĄāļēāļāļīāļāļāļąāđāļ āļĄāļĩāļāļąāļāļāļĩāđ
2.1 Java Runtime Environment (JRE) Version 1.6 āļāļķāđāļāļĄāļĩāļāļąāđāļāļāļāļāļāļēāļĢāļāļīāļāļāļąāđāļāđāļāļĢāđāļāļĢāļĄ āļāļąāļāļĢāļđāļāļāđāļēāļāļĨāđāļēāļ
āļāđāļāđāļāļāļĩāđ
1. āđāļĨāļ·āļāļāđāļāļĨāđ jre-6u3-windows-i586-p-s.exe
24
āļĢāļđāļāļāļĩāđ 30 āđāļŠāļāļāļŦāļāđāļēāļāļāđāļāļ·āđāļāđāļĨāļ·āļāļāđāļāļĨāđ jre-6u3-windows-i586-p-s.exe
33. 25
2. āļāļāļāļļāđāļĄ Accept > āđāļāļ·āđāļāļĒāļāļĄāļĢāļąāļāđāļāļ·āđāļāļāđāļāļĨāļīāļāļŠāļīāļāļāļīāđāļāļāļāđāļāļĢāđāļāļĢāļĄāļāļēāļĄāļāļāļŦāļĄāļēāļĒ
āļĢāļđāļāļāļĩāđ 31 āđāļŠāļāļāļŦāļāđāļēāļāļāđāļŦāđāļĒāļāļĄāļĢāļąāļāđāļāļ·āđāļāļāđāļāļĨāļīāļāļŠāļīāļāļāļīāđāļāļāļāđāļāļĢāđāļāļĢāļĄ
3. āļĢāļ°āļāļāļāļ°āļāļģāļāļēāļĢāļāļīāļāļāļąāđāļāđāļāļĢāđāļāļĢāļĄāļĨāļāļāļāđāļāļĢāļ·āđāļāļāļāļāļĄāļāļīāļ§āđāļāļāļĢāđ
āļĢāļđāļāļāļĩāđ 32 āđāļŠāļāļāļŦāļāđāļēāļāļāļāļāļ°āļāļģāļāļēāļĢāļāļīāļāļāļąāđāļāđāļāļĢāđāļāļĢāļĄ
4. āļāļāļāļļāđāļĄ Finish āđāļāđāļāļāļēāļĢāđāļŠāļĢāđāļāļŠāļīāđāļāļāļēāļĢāļāļīāļāļāļąāđāļāđāļāļĢāđāļāļĢāļĄ
34. 26
āļĢāļđāļāļāļĩāđ 33 āđāļŠāļāļāļŦāļāđāļēāļāļāđāļŠāļĢāđāļāļŠāļīāđāļāļāļēāļĢāļāļīāļāļāļąāđāļāđāļāļĢāđāļāļĢāļĄ
2.2 āļāļēāļĢāļāļīāļāļāļąāđāļāđāļĨāđāļāļĄāļĩāļāļĩ
1. āļŠāļēāļĄāļēāļĢāļāļāļąāļāļĨāļāļāđāļāļĨāđ letmec_beta1 āđāļāļ§āļēāļāļĒāļąāļāļāļĩāđāļāļĩāđāļāđāļāļāļāļēāļĢāđāļāđāđāļĨāļĒ
35. 27
āļĢāļđāļāļāļĩāđ 34 āļāļģāđāļāļĨāđ letmec_beta1 āđāļāļ§āļēāļāļĒāļąāļāļāļĩāđāļāļĩāđāļāđāļāļāļāļēāļĢ
2. āđāļāļīāļāđāļāļĨāđ letmec_beta1 āļāļ°āļāļāđāļāļĨāđāļāļąāļāļ āļēāļ
āļĢāļđāļāļāļĩāđ 35 āļ āļēāļāļ āļēāļĒāđāļāđāļāļĨāđ letmec_beta1
3. āđāļĨāļ·āļāļāđāļāļīāļāđāļāļĨāđ letmec_bet.exe āļāļ°āļāļĢāļēāļāļ Logo āļāļāļāđāļĨāđāļāļĄāļĩāļāļĩ āļāļąāļāļ āļēāļ(āļŠāļēāļĄāļēāļĢāļāļŠāļĢāđāļēāļ Shoutcu āđāļāđ
āļāļēāļāđāļāļĨāđāļāļĩāđ)
36. 28
āļĢāļđāļāļāļĩāđ 36 āļ āļēāļ Logo āļāļāļāđāļĨāđāļāļĄāļĩāļāļĩ
4. āļāļ°āļāļĢāļēāļāļāļ āļēāļāđāļāļĢāđāļāļĢāļĄāđāļĨāđāļāļĄāļĩāļāļĩ
āļĢāļđāļāļāļĩāđ 37 āļ āļēāļāđāļāļĢāđāļāļĢāļĄāđāļĨāđāļāļĄāļĩāļāļĩ
āļāļđāđāļĄāļ·āļāļāļēāļĢāđāļāđāļāļēāļāļāļĒāđāļēāļāļĨāļ°āđāļāļĩāļĒāļ
1. āđāļĨāļ·āļāļ Open file āđāļāļ·āđāļāđāļāļīāļāđāļāļĨāđāļāļĩāđāļāđāļāļāļāļēāļĢ
37. 29
āļĢāļđāļāļāļĩāđ 38 āļ āļēāļ Open file āđāļāļ·āđāļāđāļāļīāļāđāļāļĨāđ
2. āđāļĨāļ·āļāļāđāļāļĨāđāļāļĩāđāļāđāļāļāļāļēāļĢ āļāļąāļāļāļąāļ§āļāļĒāđāļēāļāļāļ·āļ test1.cpp
āļĢāļđāļāļāļĩāđ 39 āļ āļēāļāļāļēāļĢāđāļāļīāļāđāļāļĨāđ
3. āđāļāļĨāđāļāļĩāđāđāļāļīāļāļāļķāđāļāļĄāļēāđāļāđ āļāļąāļāļ āļēāļāļāļ·āļāđāļāļĨāđ test1.cpp
38. 30
āļĢāļđāļāļāļĩāđ 40 āļ āļēāļāđāļŠāļāļāđāļāļĨāđ test.cpp
4. āđāļĨāļ·āļāļ Analysis -> Run āļāļģāļāļēāļĢ Run āđāļāļĢāđāļāļĢāļĄ
āļĢāļđāļāļāļĩāđ 41 āļ āļēāļāđāļŠāļāļāļāļēāļĢāđāļĨāļ·āļāļāļāļģāļŠāļąāđāļ āļāļēāļĢ Run āđāļāļĢāđāļāļĢāļĄ
39. 31
5. āđāļĨāđāļāļĄāļĩāļāļĩāļāļ°āđāļŠāļāļāļāļĨāļāļēāļĢ Run āđāļāļĢāđāļāļĢāļĄāļāļĩāđāļāļđāđāđāļāđāđāļāļĩāļĒāļāļāļķāđāļ
āļĢāļđāļāļāļĩāđ 42 āļ āļēāļāđāļŠāļāļāļāļēāļĢ Run āđāļāļĢāđāļāļĢāļĄ
6. āđāļāļĢāđāļāļĢāļĄāđāļĨāđāļĄāļāļĩāļāļĩ āļāļ°āđāļŠāļāļ Execution time āđāļĨāļ° Instruction count
āļĢāļđāļāļāļĩāđ 43 āļ āļēāļāđāļŠāļāļ Execution time āđāļĨāļ° Instruction count
40. 32
7. āđāļĢāļēāļŠāļēāļĄāļēāļĢāļāđāļĨāļ·āļāļ āļĢāļļāđāļāļāļāļ Processor āđāļĨāļ°āļāļ·āđāļāļāļāļāļĢāļļāđāļ āļāļāļ Processor āđāļāđ
āļĢāļđāļāļāļĩāđ 44 āļ āļēāļāđāļŠāļāļāļāļēāļĢāđāļĨāļ·āļāļ āļĢāļļāđāļāļāļāļ Processor āđāļĨāļ°āļāļ·āđāļāļāļāļāļĢāļļāđāļ āļāļāļ Processor
8. āļāļ Confirm āđāļāļ·āđāļāļĒāļĩāļāļĒāļąāļāļāļēāļĢāđāļĨāļ·āļāļ āļāđāļēāļāļāļ Ideal Time āļāļ°āđāļāļĨāļĩāļĒāļāđāļ
āļĢāļđāļāļāļĩāđ 45 āļ āļēāļāđāļŠāļāļāļāļēāļĢāļĒāļĩāļāļĒāļąāļāļāļēāļĢāđāļĨāļ·āļāļ Processor āđāļĨāļ°āļāļēāļĢāđāļāļĨāļĩāļĒāļāđāļāļĨāļāļāļāļ Ideal Time