Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Frances: A Tool for Understanding Computer Architecture and Assembly Language

Published: 01 November 2012 Publication History

Abstract

Students in all areas of computing require knowledge of the computing device including software implementation at the machine level. Several courses in computer science curricula address these low-level details such as computer architecture and assembly languages. For such courses, there are advantages to studying real architectures instead of simplified examples. However, real architectures and instruction sets introduce complexity that makes them difficult to grasp in a single semester course. Visualization techniques can help ease this burden, unfortunately existing tools are often difficult to use and consequently difficult to adopt in a course where time is already limited. To solve this problem, we present Frances. Frances graphically illustrates key differences between familiar high-level languages and unfamiliar low-level languages and also illustrates how familiar high-level programs behave on real architectures. Key to this tool is that we use a simple Web interface that requires no setup, easing course adoption hurdles. We also include several features that further enhance its usefulness in a classroom setting. These features include graphical relationships between high-level code and machine code, clearly illustrated step-by-step machine state transitions, color coding to make instruction behavior clear, and illustration of pointers. We have used Frances in courses and performed experimental evaluation. Our experiences with Frances in the classroom demonstrate its usability. Most notably, in our experimental setting, students with no computer architecture course experience were able to complete lessons using Frances with no guidance.

References

[1]
AbsInt. 2012 aiSee - Graph visualization. http://www.absint.com/aisee/.
[2]
Aiken, A. 1996. Cool: A portable project for teaching compiler construction. SIGPLAN Not. 31, 7, 19--24.
[3]
Allen, F. E. 1970. Control flow analysis. In Proceedings of the Symposium on Compiler Optimization (SCO’70). 1--19.
[4]
Binkert, N. L., Hallnor, E. G., and Reinhardt, S. K. 2003. Network-oriented full-system simulation using M5. In Proceedings of the Workshop on Computer Architecture Evaluation Using Commercial Workloads (CAECW’03).
[5]
Borunda, P., Brewer, C., and Erten, C. 2006. GSPIM: Graphical visualization tool for MIPS assembly programming and simulation. SIGCSE Bull. 38, 1, 244--248.
[6]
Braught, G. and Reed, D. 2001. The knob & switch computer: A computer architecture simulator for introductory computer science. J. Educ. Resour. Comput. 1, 4, 31--45.
[7]
Bredlau, C. and Deremer, D. 2001. Assembly language through the Java virtual machine. In Proceedings of the 32nd ACM Technical Symposium on Computer Science Education (SIGCSE’01).
[8]
CC. 2008. Computing curricula 2008: An interim revision of CS 2001. http://www.acm.org/education/curricula/ComputerScience2008.pdf.
[9]
Coe, P. S., Howell, F. W., Ibbett, R. N., McNab, R., and Williams, L. M. 1995. An integrated learning support environment for computer architecture. In Proceedings of the 1997 Workshop on Computer Architecture Education (WCAE’97). 8.
[10]
Conway, M. J. and Pausch, R. 1997. Alice: Easy to learn interactive 3D graphics. SIGGRAPH Comput. Graph. 31, 3, 58--59.
[11]
Corliss, M. L. and Lewis, E. C. 2008. Bantam: A customizable, Java-based, classroom compiler. In Proceedings of the 39th ACM Technical Symposium on Computer Science Education (SIGCSE’08).
[12]
Ellson, J., Gansner, E. R., Koutsofios, E., North, S. C., and Woodhull, G. 2001. Graphviz - Open source graph drawing tools. Graph Drawing, 483--484.
[13]
Esponda-Arguero, M. 2008. Algorithmic animation in education---Review of academic experience. J. Educ. Comput. Res. 39, 1--15.
[14]
Free Software Foundation. 2009. GNU BinUtils: A collection of binary tools. http://www.gnu.org/software/binutils/.
[15]
Free Software Foundation. 2010. GDB: The GNU project debugger. http://www.gnu.org/software/gdb/.
[16]
Gondow, K., Fukuyasu, N., and Arahori, Y. 2010. Mierucompiler: Integrated visualization tool with “horizontal slicing” for educational compilers. In Proceedings of the 41st ACM Technical Symposium on Computer Science Education (SIGCSE’10). 7--11.
[17]
Graham, N. 1985. Introduction to Computer Science 3rd Ed. West Publishing Co., St. Paul, MN.
[18]
Hundhausen, C. D. 2002. Integrating algorithm visualization technology into an undergraduate algorithms course: Ethnographic studies of a social constructivist approach. Comput. Educ. 39, 3, 237--260.
[19]
Kise, K., Katagiri, T., Honda, H., and Yuba, T. 2004. The simcore/alpha functional simulator. In Proceedings of the Workshop on Computer Architecture Education (WCAE’04), 24.
[20]
Loui, M. C. 1988. The case for assembly language programming. IEEE Trans. Educ. 3, 160--164.
[21]
Luk, C.-K., Cohn, R., Muth, R., Patil, H., Klauser, A., Lowney, G., Wallace, S., Reddi, V. J., and Hazelwood, K. 2005. Pin: Building customized program analysis tools with dynamic instrumentation. In Proceedings of the Conference on Programming Language Design and Implementation (PLDI’05). 190--200.
[22]
McNally, M., Naps, T. L., Furcy, D., Grissom, S., and Trefftz, C. 2007. Supporting the rapid development of pedagogically effective algorithm visualizations. J. Comput. Sci. Coll. 23, 1, 80--90.
[23]
Muchnick, S. S. 1997. Advanced Compiler Design and Implementation. Morgan Kaufmann Publishers Inc., San Francisco, CA.
[24]
Naps, T. L., Rössling, G., Almstrum, V., Dann, W., Fleischer, R., Hundhausen, C., Korhonen, A., Malmi, L., McNally, M., Rodger, S., and Velázquez-Iturbide, J. A. 2002. Exploring the role of visualization and engagement in computer science education. In Proceedings of the Working Group Reports on Innovation and Technology in Computer Science Education (ITiCSE-WGR’02). 131--152.
[25]
Nikolic, B., Radivojevic, Z., Djordjevic, J., and Milutinovic, V. 2009. A survey and evaluation of simulators suitable for teaching courses in computer architecture and organization. IEEE Trans. Educ. 52, 449--458.
[26]
Null, L. and Lobur, J. 2003. MarieSim: The MARIE computer simulator. J. Educ. Resour. Comput. 3, 2, 1.
[27]
Pai, V. S., Ranganathan, P., and Adve, S. V. 1997. RSIM: Rice simulator for ILP multiprocessors. SIGARCH Comput. Arch. News 25, 5, 1.
[28]
Patt, Y. N. and Patel, S. J. 2004. Introduction to Computing Systems: From Bits & Gates to C & Beyond 2nd Ed. McGraw-Hill, Inc, New York.
[29]
Pauw, W. D., Jensen, E., Mitchell, N., Sevitsky, G., Vlissides, J. M., and Yang, J. 2002. Visualizing the execution of Java programs. In Proceedings of the International Seminar on Software Visualization (Revised Lectures). Springer-Verlag, London, 151--162.
[30]
Powers, K., Gross, P., Cooper, S., McNally, M., Goldman, K. J., Proulx, V., and Carlisle, M. 2006. Tools for teaching introductory programming: What works? SIGCSE Bull. 38, 1, 560--561.
[31]
Price, B. A., Small, I. S., and Baecker, R. M. 1992. A taxonomy of software visualization. J. Vis. Lang. Comput. 4, 211--266.
[32]
Reiss, S. P. 2003. Visualizing Java in action. In Proceedings of the ACM Symposium on Software Visualization (SoftVis’03). 57--ff.
[33]
Resler, R. D. and Deaver, D. M. 1998. Vcoco: A visualization tool for teaching compilers. SIGCSE Bull. 30, 3, 199--202.
[34]
Rössling, G. and Velázquez-Iturbide, J. Á. 2009. Editorial: Program and algorithm visualization in education. Trans. Comput. Educ. 9, 2, 1--6.
[35]
Sanders, D. and Dorn, B. 2003. Jeroo: A tool for introducing object-oriented programming. In Proceedings of the 34th Technical Symposium on Computer Science Education (SIGCSE’03). 201--204.
[36]
Schwetman, H. 1986. CSIM: A C-based process-oriented simulation language. In Proceedings of the Conference on Winter Simulation (WINTERSIM’86). 387--396.
[37]
Sherwood, T., Perelman, E., Hamerly, G., and Calder, B. 2002. Automatically characterizing large-scale program behavior. In Proceedings of the 10th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS-X’02). 45--57.
[38]
Sixt, J. 2010. A graphical debugger interface. http://www.kdbg.org/.
[39]
Sondag, T. and Rajan, H. 2010. A more precise abstract domain for multi-level caches for tighter wcet analysis. In Proceedings of the 31st IEEE Real-Time Systems Symposium (RTSS’10).
[40]
Sondag, T. and Rajan, H. 2011. Phase-based tuning for better utilization of performance-asymmetric multicore processors. In Proceedings of the 9th Annual IEEE/ACM International Symposium on Code Generation and Optimization (CGO’11).
[41]
Stallings, W. 2010. Computer Organization and Architecture: Designing for Performance 8th Ed. Pearson Education Inc., Upper Saddle River, NJ.
[42]
Stone, J. A. 2006. Using a machine language simulator to teach CS1 concepts. SIGCSE Bull. 38, 4, 43--45.
[43]
Sundararaman, J. and Back, G. 2008. HDPV: Interactive, faithful, in-vivo runtime state visualization for C/C++ and Java. In Proceedings of the 4th ACM Symposium on Software Visualization (SoftVis’08). 47--56.
[44]
The Informatik Centrum Dortmund (ICD). ICD-C compiler framework. http://www.icd.de/es/icd-c/.
[45]
Titzer, B., Lee, D., and Palsberg, J. 2005. Avrora: Scalable sensor network simulation with precise timing. In Proceedings of the Conference on Information Processing in Sensor Networks (IPSN’05).
[46]
Urquiza-Fuentes, J. and Velázquez-Iturbide, J. Á. 2009. A survey of successful evaluations of program visualization and algorithm animation systems. Trans. Comput. Educ. 9, 2, 1--21.
[47]
Wolz, U., Maloney, J., and Pulimood, S. M. 2008. “Scratch” your way to introductory CS. In Proceedings of the 39th Technical Symposium on Computer Science Education (SIGCSE’08). 298--299.
[48]
Zeng, H., Yourst, M., Ghose, K., and Ponomarev, D. 2009. MPTLsim: A cycle-accurate, full-system simulator for x86-64 multicore architectures with coherent caches. SIGARCH Comput. Arch. News 37, 2, 2--9.
[49]
Zilles, C. 2005. Spimbot: An engaging, problem-based approach to teaching assembly language programming. SIGCSE Bull. 37, 106--110.

Cited By

View all
  • (2023)A Block-Based Programming Environment for Teaching Low-Level Computing (Discussion Paper)Proceedings of the 23rd Koli Calling International Conference on Computing Education Research10.1145/3631802.3631825(1-7)Online publication date: 13-Nov-2023
  • (2022)A-IDE: A Non-intrusive Cross-Platform Development Environment for AVR Programming in AssemblySoftware Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing10.1007/978-3-031-19604-1_1(1-12)Online publication date: 19-Nov-2022

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Computing Education
ACM Transactions on Computing Education  Volume 12, Issue 4
November 2012
130 pages
EISSN:1946-6226
DOI:10.1145/2382564
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 November 2012
Accepted: 01 June 2012
Revised: 01 May 2012
Received: 01 March 2011
Published in TOCE Volume 12, Issue 4

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Education
  2. Frances
  3. architecture
  4. code generation
  5. compilers
  6. visualization

Qualifiers

  • Research-article
  • Research
  • Refereed

Funding Sources

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)20
  • Downloads (Last 6 weeks)1
Reflects downloads up to 03 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2023)A Block-Based Programming Environment for Teaching Low-Level Computing (Discussion Paper)Proceedings of the 23rd Koli Calling International Conference on Computing Education Research10.1145/3631802.3631825(1-7)Online publication date: 13-Nov-2023
  • (2022)A-IDE: A Non-intrusive Cross-Platform Development Environment for AVR Programming in AssemblySoftware Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing10.1007/978-3-031-19604-1_1(1-12)Online publication date: 19-Nov-2022

View Options

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media