L0022000
2 Principles of Programming Languages
Middle-level Diploma Policy (mDP)
| Program / Major |
mDP |
Goals |
Courses |
| Fundamental Mechanical Engineering |
F |
産業界や社会の要請を把握して解決するべき課題を設定し、さまざまな工学分野の知識を関連付けながら設計生産技術を活用することで、立案した構想に従って研究を進め課題を解決することができる。 |
Sub |
| Advanced Mechanical Engineering |
F |
産業界や社会の要請を把握して解決するべき課題を設定し、機械工学の学理を応用して異分野を含む融合分野で革新的な機能を創成することができる。 |
Sub |
| Environment and Materials Engineering |
B |
地球環境や地域社会との調和を見据えて、さまざまな工学分野に関わる問題を解決することができる。 |
Sub |
| Chemistry and Biotechnology |
B |
地球環境や地域社会との調和を見据えて、さまざまな工学分野に関わる問題を解決することができる。 |
Sub |
| Electrical Engineering and Robotics |
D |
電気工学や関連する工学の技術分野を課題に適用し、社会の要求を解決するために応用することができる。 |
Sub |
| Advanced Electronic Engineering |
E |
専門的デザイン課題について解決する能力を身に付けることができる。 |
Sub |
| Information and Communications Engineering |
F |
社会のニーズに対して技術課題を主体的に発見し、工学分野における分野横断的な知識も活用しつつ、計画的・継続的に取り組んで課題を達成することができる。 |
Sub |
| Computer Science and Engineering |
B-2 |
コンピュータサイエンスの各分野の基礎知識とその応用能力を身に付けることができる。 |
Main |
| Urban Infrastructure and Environment |
G |
⼟⽊⼯学における現実の問題について、⼯学・専⾨基礎知識を⽤いて理解・解決することができる。 |
Sub |
A programming language is a system for describing computation. Each language abstracts computation from various perspectives
and provides programmers with the means to express it. For example, languages typically provide variables, functions, and
types. The manner in which a language abstracts computation significantly impacts programming. By studying the representative
abstractions found in existing languages, students will be able to make informed choices when selecting a language for a given
task. Furthermore, by learning key concepts such as variable scope and parameter-passing mechanisms, students will understand
the differences between various languages. Since programming language semantics form the foundation for program analysis and
verification, studying semantics provides the means to define program behavior precisely.
Computers are machines that operate according to programs, which are authored using programming languages. A programming language
is defined by its syntax and semantics. This course focuses on the definition of semantics --- the results of program execution
--- by introducing axiomatic semantics and operational semantics, demonstrating these definitions through a simple model language.
Furthermore, programming languages are classified by their underlying computational models; we will examine the computational
models for imperative, functional, object-oriented, and logic programming. Essential language features, such as variable scope
and parameter-passing mechanisms, will also be covered.
- Understanding the formal description of the semantics of programming languages and being able to describe semantics of short
programs in tiny languages based on axiomatic and operational semantics
- Understanding the scope rules (static and dynamic) of variables and being able to explain how the meaning of programs changes
according to the scope rules
- Understanding the mechanisms of parameter passing and being able to explain how the meaning of programs changes according
to the mechanisms
- Being able to explain the classification of programming languages based on their computational models
Relationship between 'Goals and Objectives' and 'Course Outcomes'
|
small exam |
final exam |
Total. |
| 1. |
2% |
18% |
20% |
| 2. |
2% |
18% |
20% |
| 3. |
2% |
18% |
20% |
| 4. |
2% |
18% |
20% |
| 5. |
2% |
18% |
20% |
| Total. |
10% |
90% |
- |
Evaluation method and criteria
The final grade is calculated based on a final exam (maximum 90 points) and a small exam (maximum 10 points). If F represents
the final exam score and S represents the score for the small exam, the total score is determined by the following formula:
Total=S+F×(100−S)/90.
A passing score of 60 reflects the ability to solve basic problems regarding the fundamental topics covered in this course.
Japanese(English accepted)
|
Class schedule |
HW assignments (Including preparation and review of the class.) |
Amount of Time Required |
| 1. |
Classification of programming languages and a simple example of programming languages |
Section 8.1 of the reference book |
185minutes |
| 2. |
Imperative languages (1) - Assignments - Structured programming - Control flow
|
Section 3.1, 3.2, and 3.3 of the reference book |
190minutes |
| 3. |
Imperative languages (2) - Break statements, continue statements, goto statements, and return statements
|
Section 3.4 of the reference book |
190minutes |
| 4. |
Imperative languages (3) - Compilation of sentences - Short-circuit evaluation - Assertions - Hoare triple - Hoare logic
|
p. 109, p. 87 and Section 3.6 of the reference book |
190minutes |
| 5. |
Imperative languages (4) - Procedures - Parameter-passing mechanisms - Scope rules of variables
|
Section 5.2 and 5.3 of the reference book |
190minutes |
| 6. |
Operational semantics and a small examination - An operational semantics for a tiny C language - Definition of the meaning of expressions - Definition of the meaning of sentences
|
Section 13.3 of the reference book provides an operational semantics, although it is for a functional language. This lecture
provides one for an imperative language, but the basic ideas are similar. Since imperative languages support assignments,
we have to care about the states, which the reference book does not provide the explanation for. Each student is recommended
to try to consider how to define an operational semantics for an imperative language.
|
190minutes |
| 7. |
Final examination and explanation of the answers - Paper-and-pencil test for checking the understanding of the contents of the lectures from the first to the seventh
|
Review the contents of all the lectures until the last one. |
190minutes |
| 8. |
- |
- |
0minutes |
| 9. |
- |
- |
0minutes |
| 10. |
- |
- |
0minutes |
| 11. |
- |
- |
0minutes |
| 12. |
- |
- |
0minutes |
| 13. |
- |
- |
0minutes |
| 14. |
- |
- |
0minutes |
| 15. |
|
|
|
| Total. |
- |
- |
1325minutes |
Feedback on exams, assignments, etc.
| ways of feedback |
specific contents about "Other" |
| Feedback in the class |
|
Textbooks and reference materials
We make materials public on a web page.
A reference book is:
- Programming languages concepts & constructs 2nd edition, Ravi Sethi, Addison-Wesley, 1996.
This class is largely based on this book. Currently it takes time to purchase this book.
A recommended book is:
- Concepts in programming languages, John C. Mitchell, Cambridge University Press, 2001.
Two copies of this book is available in the library in Omiya Campus.
If you have a basic understanding of computer science, such as what is covered in an introductory computer science course
like ”Introduction to Computer Science,” and if you can write programs in any language for problems that are at the level
where high school students can imagine the computational steps, such as what are covered in ”Introduction to programming 1”
and ”Introduction to programming 2”, then you are well-prepared to take this course.
Office hours and How to contact professors for questions
- Tuesday 12:30-12:40 or any time agreed on by slack via zoom
Non-regionally-oriented course
Development of social and professional independence
- Course that cultivates a basic problem-solving skills
Course by professor with work experience
| Work experience |
Work experience and relevance to the course content if applicable |
| N/A |
N/A |
Education related SDGs:the Sustainable Development Goals
Last modified : Sat Mar 14 14:31:56 JST 2026