システムプログラミング序論

  [ GB11954 ]
Introduction to System Programming
対象:2学年 開設学期:秋ABC 曜日・時限:月3・4 単位数:3単位
担当教員:大山恵弘

概要

システムプログラミングの基礎を学ぶため、C言語および機械語によるプログラミングについて講義する。C言語、およびx86アーキテクチャの機械語によるプログラムの作成を通して、計算機の構成を命令セットアーキテクチャのレベルで理解することで、実際の計算機がどのようにしてプログラムを実行するのかを理解する。また、C言語のプログラムと機械語のプログラムの関係についても理解する。

学習・教育目標

1. 計算機におけるプログラムの動作原理と機械語の命令セットについて理解する。
2. 簡単なアセンブリ言語によるプログラミングができるようになる。
3. C言語によるプログラミングができるようになる。

キーワード

C言語、アセンブリ言語、機械語、システムプログラム、計算機アーキテクチャ

Keywords

C language, assembly language, machine language, system programs, computer architecture.

時間割

講義内容/理解すべき項目
1C言語の基本文法
2, 3論理演算子、繰り返し、配列、文字列、ポインタ
4コマンドライン引数、ファイル入出力
5, 6変数スコープ、メモリ割当て、複雑なデータ構造
7関数ポインタ、セキュアプログラミング
8中間試験
9計算機のしくみと機械語、基本的な命令
10アドレッシングモード、条件分岐
11数の表現、演算命令
12, 13関数呼び出し
14C言語とのインタフェース
15スタックの操作

教材

講義資料、実習問題等をプリントやWebページを通じて配布する。

参考書籍

高橋麻奈,やさしいC 第4版,ソフトバンククリエイティブ
B.W.カーニハン,D.M.リッチー,プログラミング言語C 第2版,共立出版
Randall Hyde,Write Great Code Vol. 1 and 2,毎日コミュニケーションズ
David A.Patterson,John L.Hennessy,コンピュータの構成と設計 第5版 上下,日経BP
IA-32 インテル アーキテクチャ ソフトウェア・デベロッパーズ・マニュアル
Intel 64 and IA-32 Architectures Software Developer's Manual

予備知識・前提条件

プログラミング言語の知識、プログラミング経験があること。

成績評価

実習レポート成績、出席状況、中間および期末試験を総合して評価する。

教員メールアドレス

oyama
のあとに(AT)cs.tsukuba.ac.jp

オフィスアワー

水曜3限 学術情報メディアセンターA416