Sorry, this page is no longer available
Sorry, this page is no longer available
We may earn an affiliate commission when you visit our partners.
Course image
袁春风

本课程主要介绍高级语言程序中的数据类型及其运算、语句和过程调用等是如何在计算机系统中实现的。主要包含三个主题:(1)表示。不同数据类型(如带符号整数、无符号整数、浮点数、数组、结构等)数据在寄存器或存储器中的表示和存储;指令的格式、编码及其在存储器中的存储;存储地址(指针)的表示。(2)转换。高级语言程序中的过程(函数调用)、循环、选择等语句与机器级代码之间的对应关系。(3)链接。多个可重定位目标文件如何链接生成可执行目标文件并加载到系统中。

通过本课程的学习,使学习者能从程序员角度认识计算机系统,能够建立高级语言程序、ISA、OS、编译器、链接器等之间的相互关联,对指令在硬件上的执行过程和指令的底层硬件执行机制有一定的认识和理解,从而增强在程序调试、性能提升、程序移植和健壮性等方面的能力,并为后续的“计算机组成与设计”、“操作系统”、“编译原理”、“计算机体系结构”等课程打下坚实基础。

学完本课程后,学习者将对以下问题有比较深刻的认识,并能解决相关实际问题。

----程序中处理的数据在机器中如何表示和运算?

----程序中各类控制语句对应的机器级代码结构是怎样的?

----多个程序模块是如何链接起来形成可执行目标文件的?

----机器级代码及构成机器级代码的指令是如何在机器上执行的?

Enroll now

Here's a deal for you

Save money when you learn with a deal that may be relevant to this course.
All coupon codes, vouchers, and discounts are applied automatically unless otherwise noted.

What's inside

Syllabus

WEEK1
首先,通过介绍C语言程序的具体实例,来说明高级语言程序的执行结果与编程语言之外的计算机系统其他方面有关,从而使学生明白为何要学习“计算机系统基础”课程;然后,介绍计算机系统基本组成与基本功能、程序开发和执行过程、计算机系统层次结构等概述性内容;最后,简要说明本课程的主要学习内容。
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
适合计算机科学原理的本科生或者研究生选修或参考。
探讨计算机系统中高级语言程序实现的原理,对计算机系统有深入的认识。
帮助学生了解高级语言程序和计算机系统之间的联系,并建立两者之间的相互关联。
覆盖计算机系统基础,数据类型,语句和过程调用等主题。
提供高级语言程序在计算机系统中的实现过程,帮助学生理解程序执行过程和底层硬件执行机制。
为“计算机组成与设计”、“操作系统”、“编译原理”、“计算机体系结构”等后续课程打下坚实基础。

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

计算机系统基础:程序底层原理

根据课程描述及对类似课程的普遍反馈,学习者可以期待一门内容扎实的课程,深入讲解程序在计算机系统中的表示、转换与链接过程。课程涵盖了数据表示机器级代码(IA-32/x86-64)过程调用链接过程等核心内容。它旨在帮助学习者从程序员视角理解系统,并为后续的操作系统编译原理计算机体系结构等课程打下坚实基础。课程深度足够,但对于没有相关前置知识的初学者来说,可能存在一定的挑战,需要投入较多时间和精力消化理解。课程内容组织严谨,是理解计算机底层原理的良好起点
链接器和链接过程理解有难度。
"静态链接和动态链接的概念感觉有点绕,不是很好掌握。"
"解析ELF文件格式和重定位是课程中比较难的部分。"
"需要花额外的时间去查阅资料来辅助理解链接原理。"
"感觉链接这一块比前面的汇编部分更抽象一些。"
详细解析C代码到机器码转换。
"通过这门课,我终于看懂了C语言程序对应的汇编代码。"
"课程重点讲解C语言特性在机器级上的实现,非常有帮助。"
"过程调用、循环、选择语句和机器码的对应关系讲得很细致。"
"理解了C语言程序在硬件上的实现机制,感觉编程能力提升了。"
课程深入讲解程序底层原理。
"这门课让我彻底理解了高级语言代码是如何在机器上运行的。"
"对数据表示和指令执行过程的讲解非常透彻,收获很大。"
"课程覆盖了表示、转换、链接三大主题,构架清晰。"
"我觉得这门课把很多晦涩的底层概念讲得比较清楚了。"
为操作系统等课程打基础。
"这门课是学习操作系统和编译原理之前非常重要的一环。"
"课程内容与计算机组成、体系结构紧密关联,衔接性好。"
"打好了这门基础,再去看操作系统内核代码感觉没那么吃力了。"
"对于想深入学习计算机科学的学生来说,这门课是必修的基石。"
内容深入,对初学者有难度。
"课程信息量很大,需要投入大量时间去理解和消化。"
"如果之前没有接触过汇编或者计算机组成,入门可能会比较困难。"
"有些章节概念比较抽象,需要反复学习才能理解透彻。"
"我觉得这门课的难度曲线有点陡峭,不适合完全零基础的人。"

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in 计算机系统基础(一) :程序的表示、转换与链接 with these activities:
担任同辈导师,帮助其他学生理解课程概念
通过指导和帮助其他学生,巩固自己对课程概念的理解,同时培养沟通和教学技能。
Show steps
  • 主动参与课堂讨论和在线论坛,分享自己的理解。
  • 自愿为有困难的学生提供一对一的辅导或小组学习指导。
  • 创建学习资料或教程,帮助其他学生理解特定概念。
Show all one activities

Career center

Learners who complete 计算机系统基础(一) :程序的表示、转换与链接 will develop knowledge and skills that may be useful to these careers:
Computer Architect
Computer architects design the hardware that makes up computers. They work on a variety of computer architectures, from small embedded systems to large supercomputers. A strong foundation in computer science is required for this career, and a course in "Foundations of Computer Systems" can help students develop the skills needed for success in this field.
Computer Engineer
Computer engineers design, develop, and maintain computer hardware and software. They work on a variety of computer systems, from small embedded systems to large enterprise systems. A strong foundation in computer science is required for this career, and a course in "Foundations of Computer Systems" can help students develop the skills needed for success in this field.
Computer Programmer
Computer Programmers write and maintain computer code. They work on a variety of software applications, from operating systems to mobile apps. A strong foundation in computer science is required for this career, and a course in "Foundations of Computer Systems" can help students develop the skills needed for success in this field.
Systems Engineer
Systems engineers design, develop, and maintain complex systems. They work on a variety of systems, from small embedded systems to large enterprise systems. A strong foundation in computer science is required for this career, and a course in "Foundations of Computer Systems" can help students develop the skills needed for success in this field.
Software Engineer
Software Engineers design, develop, and maintain software. They work on a variety of software applications, from operating systems to mobile apps. A strong foundation in computer science is required for this career, and a course in "Foundations of Computer Systems" can help students develop the skills needed for success in this field.
Security Analyst
Security Analysts identify and mitigate security risks. They work on a variety of security systems, from firewalls to intrusion detection systems. A strong foundation in computer science is required for this career, and a course in "Foundations of Computer Systems" can help students develop the skills needed for success in this field.
Network Administrator
Network Administrators manage and maintain computer networks. They work on a variety of networks, from small home networks to large corporate networks. A strong foundation in computer science is required for this career, and a course in "Foundations of Computer Systems" can help students develop the skills needed for success in this field.
Database Administrator
Database Administrators manage and maintain databases. They work on a variety of database systems, from small desktop databases to large enterprise-wide systems. A strong foundation in computer science is required for this career, and a course in "Foundations of Computer Systems" can help students develop the skills needed for success in this field.
Web Developer
Web Developers design and develop websites. They work on a variety of websites, from small personal websites to large corporate websites. A strong foundation in computer science is required for this career, and a course in "Foundations of Computer Systems" can help students develop the skills needed for success in this field.
Mobile Developer
Mobile Developers design and develop mobile apps. They work on a variety of mobile apps, from small personal apps to large corporate apps. A strong foundation in computer science is required for this career, and a course in "Foundations of Computer Systems" can help students develop the skills needed for success in this field.
Game Developer
Game Developers design and develop video games. They work on a variety of video games, from small independent games to large AAA games. A strong foundation in computer science is required for this career, and a course in "Foundations of Computer Systems" can help students develop the skills needed for success in this field.
Machine Learning Engineer
Machine Learning Engineers design and develop machine learning models. They work on a variety of machine learning applications, from self-driving cars to medical diagnosis. A strong foundation in computer science is required for this career, and a course in "Foundations of Computer Systems" can help students develop the skills needed for success in this field.
Data Scientist
Data Scientists use data to solve problems. They work on a variety of data science problems, from predicting customer behavior to identifying fraud. A strong foundation in computer science is required for this career, and a course in "Foundations of Computer Systems" can help students develop the skills needed for success in this field.
Computer Systems Analyst
Computer Systems Analysts design, implement and maintain computer systems and networks. They analyze the needs of businesses and organizations to develop systems that meet their specific requirements. A background in computer science is commonly required, and a course in "Foundations of Computer Systems" can help build a foundation for this career.
Electrical Engineer
Electrical engineers design, develop, and maintain electrical systems. They work on a variety of electrical systems, from small embedded systems to large power systems. A strong foundation in computer science is becoming increasingly important for this career, and a course in "Foundations of Computer Systems" can help students develop the skills needed for success in this field.

Reading list

We've selected 13 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in 计算机系统基础(一) :程序的表示、转换与链接.
本书涵盖了计算机系统基础的方方面面,内容深入且全面,可以作为本课程的补充读物。
本书是由袁春风教授编写的,是南京大学计算机科学与技术系本科生计算机系统基础课程的教材。本书系统地介绍了计算机系统基础知识,包括计算机硬件、操作系统、编译原理和计算机组成原理。本书内容丰富、深入浅出,既适合作为计算机相关专业的教材,也适合作为计算机爱好者的学习参考书。
本书从硬件和软件的角度对计算机系统进行了深入的讲解,对于理解本课程中的机器级代码和指令执行过程非常有帮助。
本书从量化研究的角度对计算机体系结构进行了深入的探讨,对于理解本课程中涉及到的指令执行过程和性能提升等知识很有帮助。
本书是计算机网络领域的经典教材,全面系统地介绍了计算机网络的原理和实现,有助于理解本课程中涉及的网络相关概念。
本书介绍了数据结构和算法的基础知识,对于理解本课程中涉及到的数据表示和运算很有帮助。
本书是离散数学领域的经典教材,全面系统地介绍了离散数学的基本原理和应用,有助于理解本课程中涉及的离散数学相关概念。
本书从量化研究的角度介绍了计算机体系结构,涵盖了计算机体系结构的各个方面。本书适合作为计算机体系结构课程的教材,也可作为计算机相关专业的参考书。
本书是人工智能领域的经典教材,全面系统地介绍了人工智能的基本原理和应用,有助于理解本课程中涉及的人工智能相关概念。
本书是机器学习领域的经典教材,全面系统地介绍了机器学习的基本原理和应用,有助于理解本课程中涉及的机器学习相关概念。
本书是计算机科学领域的经典著作,全面系统地介绍了计算机程序设计的基本原理和技术。本书内容深入浅出,既适合作为计算机相关专业的教材,也适合作为计算机爱好者的学习参考书。
本书全面介绍了自然语言处理,涵盖了自然语言处理的各个方面。本书适合作为自然语言处理课程的教材,也可作为计算机相关专业的参考书。

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser