第7章高水準プログラミング言語
Chapter Review章の復習
Key Terms重要用語
abstract method
抽象メソッド
declared without a code block for implementation; the stubs of methods that will be implemented by a class which uses the interface
実装用のコードブロックを伴わずに宣言されたメソッド。インターフェースを使うクラスが実装する、メソッドのひな型。
abstraction
抽象化
way of thinking and expressing algorithms to indicate what the programmer wants the hardware to do
プログラマーがハードウェアに何をしてほしいかを示すために、アルゴリズムを考え、表現する方法。
access modifier
アクセス修飾子
keyword that denotes where in code to access a variable or method
コードのどこから変数やメソッドへアクセスできるかを示すキーワード。
argument
実引数
value of a function call, which must match the parameters in both number and data type
関数呼び出しで渡す値。数とデータ型の両方が、仮引数に一致しなければならない。
array
配列
named variable that references a block of contiguous memory locations
連続するメモリ位置のまとまりを参照する、名前付きの変数。
array initializer
配列初期化子
values separated by commas placed between curly braces
波括弧の間に置かれ、コンマで区切られた値。
assembly
アセンブル
process of converting a low-level assembly language product of the compiler into machine language that the computer can execute; binary form
コンパイラーが生成した低水準のアセンブリー言語を、コンピューターが実行できる二進形式の機械語へ変換する処理。
assignment statement
代入文
operation by which a value is stored in a variable
値を変数に保存する操作。
back end
バックエンド
compiler step that is responsible for code generation or production of the target code
コード生成、すなわち目的のコードの作成を担当する、コンパイラーの段階。
basic block
基本ブロック
minimal-length sequence of instructions that will always execute in its entirety if it executes at all, equivalent to a code block
実行されるなら必ず全体が実行される、最小限の長さの命令列。コードブロックに相当する。
best practice
ベストプラクティス
most accepted style and structure of code that can be used to ensure proper software development, which makes it possible to learn new languages easily once a programmer has mastered a given one
適切なソフトウェア開発のために使える、最も広く受け入れられたコードの書き方と構造。プログラマーがある言語を習得すれば、ほかの新しい言語も容易に学べるようにする。
binary operator
二項演算子
operator surrounded by two operands
二つのオペランドに挟まれた演算子。
Boolean
ブール型
data types that can hold the values true or false
trueまたはfalseの値を保持できるデータ型。
bottom-tested loop
後判定ループ
condition for further loop iteration set at the exit from the code block
コードブロックの出口に、ループをさらに繰り返すための条件を置いたもの。
busy waiting
ビジーウェイト
condition of a process that is continually looking to see if it has access to a critical section, taking processor time from all processes
クリティカルセクションへアクセスできるかを、プロセスが絶えず確認し続け、すべてのプロセスが使うプロセッサー時間を消費する状態。
bytecode
バイトコード
object code produced by Java compilation, which is then interpreted by the Java virtual machine
Javaのコンパイルが生成するオブジェクトコード。その後、Java仮想マシンが解釈する。
call stack
呼び出しスタック
execution stack that is the data structure that controls the calling and return of functions
関数の呼び出しと復帰を制御するデータ構造である、実行スタック。
case-sensitive
大文字と小文字の区別
refers to whether uppercase and lowercase letters are treated as distinct from each other
大文字と小文字を、互いに異なる文字として扱うかどうかを指す。
class
クラス
code blueprint from which objects are constructed
オブジェクトを作るための、コードの設計図。
client-side script
クライアント側スクリプト
script that runs on a client computer, usually under the control of a web browser and needs an interpreter on the client’s machine
通常はWebブラウザーの制御下で、クライアントのコンピューター上を動くスクリプト。クライアントのマシンにインタープリターを必要とする。
code block
コードブロック
statement that consists of one or more statements that are structured in a sequential group and delineated as such
一つ以上の文を順番に実行するグループにまとめ、そのまとまりとして区切った文。
code generation
コード生成
transformation of the code to the target or object language
コードを目的言語、またはオブジェクト言語へ変換すること。
coercion
型の強制変換
ability of a variable of a data type to be forced to hold a value of a different data type
あるデータ型の変数に、異なるデータ型の値を強制的に保持させることができる機能。
combined assignment
複合代入
when the assignment operator is combined with another operator, usually mathematical, as a shortcut notation
省略記法として、代入演算子を、通常は算術的な別の演算子と組み合わせること。
comment
コメント
container used to hold documentation in code
コード内に説明文を入れるための入れ物。
Common Gateway Interface (CGI)
Common Gateway Interface(CGI)
executable program residing in a special directory known to the web server management program
Webサーバー管理プログラムが把握している、特別なディレクトリーに置かれた実行可能プログラム。
Common Language Runtime (CLR)
共通言語ランタイム(CLR)
takes managed code and provides a JIT execution that allows all the languages to play nicely with each other
マネージコードを受け取り、すべての言語がうまく連携できるように、JIT実行を提供するもの。
compilation
コンパイル
single process that takes the source code that the programmer creates and transforms it into another language
プログラマーが作ったソースコードを受け取り、別の言語へ変換する一連の処理。
complex data type
複合データ型
data type consisting of multiple primitive types used as its building blocks
複数の基本型を構成要素として組み合わせたデータ型。
condition-controlled
条件制御型
loop that will continue to iterate until a specific condition is met
特定の条件が満たされるまで、繰り返しを続けるループ。
conditional expression
条件式
(also: Boolean expression) evaluates to the Boolean values of true or false
ブール式ともいう。評価すると、ブール値のtrueまたはfalseになる式。
constructor
コンストラクター
specialized method that is called upon to instantiate an object from a class
クラスからオブジェクトをインスタンス化するために呼び出す、特別なメソッド。
count-controlled
回数制御型
loop that will continue to iterate a specific number of times
指定された回数だけ、繰り返しを続けるループ。
decrement operator (--)
デクリメント演算子(--)
unary operator that lowers the value of its operand by one
オペランドの値を1だけ減らす単項演算子。
destructor
デストラクター
specialized methods used in some languages to destroy an instantiated object and recover its memory
インスタンス化したオブジェクトを破棄し、そのメモリを回収するために、一部の言語で使われる特別なメソッド。
determinative
回数が定まったループ
loop that is predictable in its number of iterations
繰り返し回数を予測できるループ。
dynamic linker
動的リンカー
compilation process which allows the program to be carried over to memory for execution after it runs
自分が動いた後で、プログラムを実行のためにメモリへ移せるようにする、コンパイル処理。
dynamic method binding
動的メソッド束縛
all methods are resolved dynamically at runtime, not by the compiler, sometimes referred to as late binding
すべてのメソッドを、コンパイラーによってではなく、実行時に動的に解決すること。遅延束縛とも呼ばれる。
element
要素
each “shelf” of an array that can hold a value of a data type
データ型の値を一つ保持できる、配列の各「棚」。
embedded script
埋め込みスクリプト
script in which one language is embedded inside another
一つの言語が別の言語の中に埋め込まれたスクリプト。
encapsulation
カプセル化
attributes and behaviors of classes and objects are self-contained and go along with them throughout their lifetime
クラスやオブジェクトの属性と振る舞いが内部にまとまり、その生存期間を通じて、一緒に保たれること。
event-driven
イベント駆動型
when behavior of programs is controlled by actions (events) which are listened for and then acted upon or handled
動作(イベント)の発生を待ち、それに対応した処理を行うことで、プログラムの振る舞いが制御される方式。
exception
例外
unusual behavior that can be recovered using exception handling support the programming language provides
プログラミング言語が提供する例外処理機能を使って、回復できる通常とは異なる振る舞い。
exponentiation operator (**)
べき乗演算子(**)
operator that raises the value of one operand to the power of the second operand
一方のオペランドの値を、もう一方のオペランドの値を指数として累乗する演算子。
expression
式
construct in a programming language that evaluates two values
二つの値を評価する、プログラミング言語の構成要素。
first-class function
第一級関数
function that can be assigned as a value to a variable
変数へ値として代入できる関数。
floating point
浮動小数点
data type consisting of a decimal number
小数からなるデータ型。
flow of control
制御フロー
order in which, or if, the statements of a program are executed
プログラムの文がどの順序で実行されるか、または実行されるかどうか。
for loop
forループ
particular loop construct that is top-tested and count-controlled
前判定で、回数制御型の、特定のループ構文。
formal parameter
仮引数
represent values that the function needs to receive to do its job
関数が仕事をするために受け取る必要のある値を表すもの。
front end
フロントエンド
compilation step that is responsible for the analysis of the source code
ソースコードの解析を担当するコンパイルの段階。
function
関数
code sequence that is designed to perform a particular task
特定の作業を行うために設計された、一連のコード。
function call
関数呼び出し
code which invokes the function and passes to it values that may be needed for it to do its job
関数を呼び出し、その関数が仕事をするために必要となる値を渡すコード。
function signature
関数シグネチャー
defines a function and informs the compiler or interpreter about the details that it needs to call upon that function and what it may return
関数を定義し、その関数を呼び出すために必要な詳細や、何を返せるかを、コンパイラーまたはインタープリターへ知らせるもの。
functional programming
関数型プログラミング
programming model in which the key concept is that programs are constructed by composing functions and applying them
関数を合成し、適用することでプログラムを構築する、という考え方を中心としたプログラミングモデル。
garbage collection
ガベージコレクション
process used to destroy unneeded objects and recover memory when there are no longer any references to them in the code
コードからの参照がなくなったとき、不要なオブジェクトを破棄し、メモリを回収するための処理。
global optimization
大域最適化
code improvements at multiple layers that include loop performance improvement, register allocation, and instruction scheduling
ループ性能の改善、レジスター割り当て、命令スケジューリングを含む、複数の層にわたるコード改善。
high-order function
高階関数
function that can take one or more first class functions as arguments
一つ以上の第一級関数を引数に取れる関数。
hybrid implementation
混成実装
method of language translation which involves the use of both a compiler and an interpreter
コンパイラーとインタープリターの両方を使う、言語の翻訳方法。
identifier
識別子
name given to a variable or other construct
変数や、ほかの構成要素に付けられた名前。
imperative language
命令型言語
emphasizes a “tell the computer what to do” approach
「何をするかをコンピューターに指示する」という方法を重視する言語。
increment operator (++)
インクリメント演算子(++)
unary operator that raises the value of its operand by one
オペランドの値を1だけ増やす単項演算子。
indexed array
添字付き配列
array in which the elements are numbered with an index, starting at zero
各要素に、0から始まる添字で番号を付けた配列。
information hiding
情報隠蔽
masking of the actual bits and bytes of implementation that the user of a module does not need to know
モジュールの利用者が知る必要のない、実装の実際の細部を隠すこと。
inheritance
継承
feature of OOP in which classes and objects take on specified attributes from their ancestors
クラスやオブジェクトが、祖先から指定された属性を引き継ぐ、OOPの機能。
initialization
初期化
assigning its first value to a variable
変数に最初の値を代入すること。
instantiation
インスタンス化
process of building an instance (an object) of a class
クラスのインスタンス、すなわちオブジェクトを作る処理。
integer
整数型
data type consisting of whole numbers
整数からなるデータ型。
interface
インターフェース
construct which resembles a class definition but contains only methods which are constructed as abstract methods
クラス定義に似ているが、抽象メソッドとして作られたメソッドだけを含む構成要素。
intermediate code
中間コード
language translation phase that produces a code level between the source code and the object code
ソースコードとオブジェクトコードの間の水準のコードを作り出す、言語の翻訳段階。
intermediate form (IF)
中間形式(IF)
middle end compilation product created after semantic analysis if the program passes all checks
プログラムがすべての検査に合格した場合、意味解析の後に作られる、コンパイルのミドルエンドの生成物。
intermediate language
中間言語
generated from programming source code, but the CPU typically cannot execute directly
プログラムのソースコードから生成されるが、通常はCPUが直接実行できないもの。
iteration
反復
looping, going around and re-executing sequences of statements
ループすること、すなわち文の並びを再び実行すること。
Java virtual machine (JVM)
Java仮想マシン(JVM)
Java interpreter that translates bytecode into executable code
バイトコードを実行可能コードへ翻訳する、Javaのインタープリター。
just-in-time (JIT) compilation
ジャストインタイム(JIT)コンパイル
process when intermediate code gets its final compilation (or usually interpretation) phase right at the start of runtime
実行開始の直前に、中間コードが最後のコンパイル段階(通常は解釈実行)を受ける処理。
just-in-time (JIT) translation
ジャストインタイム(JIT)翻訳
process in which intermediate language is translated and executed exactly when needed
まさに必要になった時点で、中間言語を翻訳して実行する処理。
keyword
キーワード
word reserved by the language that has a special meaning
言語が予約している、特別な意味を持つ語。
late binding
遅延束縛
when all methods are resolved dynamically at runtime, not by the compiler; sometimes referred to as dynamic binding
すべてのメソッドを、コンパイラーによってではなく、実行時に動的に解決すること。動的束縛とも呼ばれる。
lexical analysis
字句解析
compilation step that converts the source code strings of characters into tokens
ソースコードの文字列をトークンへ変換する、コンパイルの段階。
literal
リテラル
value of one of the legal data types of an HLL that can be written directly into the code
コードへ直接書き込める、高水準言語で認められたデータ型の値。
local optimization
局所最適化
elimination of redundant operations in a basic block
基本ブロック内の冗長な演算を取り除くこと。
lvalue
左辺値(lvalue)
left-hand operand in an expression
式の左側のオペランド。
managed code
マネージコード
code targeted to run under a particular runtime environment
特定の実行環境のもとで動くことを想定したコード。
member
メンバー
attribute or method that is encapsulated within a class or object
クラスやオブジェクト内にカプセル化された属性またはメソッド。
metadata
メタデータ
data about data
データについてのデータ。
middle end
ミドルエンド
compilation step responsible for performing optimizations of the code
コードの最適化を担当する、コンパイルの段階。
modularization
モジュール化
splitting a large job into independent units which may be then called upon to perform tasks
大きな仕事を、その後、作業を行うために呼び出せる独立した単位へ分割すること。
module
モジュール
component of a program
プログラムの構成要素。
modulo operator (%)
剰余演算子(%)
operator which evaluates to the remainder left after division
除算で残る余りを、評価結果とする演算子。
multiple inheritance
多重継承
ability to inherit attributes and methods from more than one parent
複数の親から属性とメソッドを継承できる機能。
multitask
マルチタスク
ability of an application to process more than one task at the same time or to engage in concurrency
アプリケーションが、同じ時間帯に複数のタスクを処理する、すなわち並行処理を行う能力。
mutable
可変
something that is changeable, possibly referring to state
変更できるもの。状態を指す場合がある。
name-value pair
名前と値の組
construct-like variables that is named and can hold values
変数のように、名前を持ち、値を保持できる構成要素。
named constant
名前付き定数
container that can be assigned the value of a data type which may not be changed thereafter
あるデータ型の値を代入できるが、その後は変更できない入れ物。
non determinative
回数不定
loop for which we cannot predict the number of iterations (condition controlled)
繰り返し回数を予測できないループ(条件制御型)。
object code
オブジェクトコード
machine code produced by a compiler or interpreter
コンパイラーまたはインタープリターが生成する機械語コード。
operator
演算子
performs various types of operations (processes) on values
値に対して、さまざまな種類の演算や処理を行うもの。
optimization
最適化
producing what will be needed to generate the fastest and most efficiently running code possible
できるだけ速く、効率的に動くコードを生成するために必要なものを作り出すこと。
override
オーバーライド
define another method with the same name and modify its signature
同じ名前を持つ別のメソッドを定義し、そのシグネチャーを変更すること。
parallelism
並列性
when programs can have more than one part of the code running simultaneously
プログラムのコードの複数の部分を、同時に動かせること。
parsing
パーシング
front-end compilation process, also referred to as syntax analysis, or reading the code to make sure it conforms with the syntax rules of the language
コンパイルのフロントエンドの処理。構文解析とも呼ばれ、言語の構文規則に従っているかを確かめるために、コードを読むこと。
pass by reference
参照渡し
actual memory address of a variable passed as an argument, meaning the function has access to modify the original variable
変数の実際のメモリアドレスを実引数として渡すこと。関数から元の変数へアクセスし、変更できる。
pass by value
値渡し
copy made of a value and passed as an argument, meaning the function has no access to modify the original variable
値のコピーを作り、実引数として渡すこと。関数から元の変数を変更することはできない。
polymorphism
ポリモーフィズム
feature of OOP in which methods inherited may perform in different ways in different subclasses and depend upon their context
継承したメソッドが、文脈に応じて、異なるサブクラスで異なる方法で動作するという、OOPの特徴。
precedence
優先順位
order of operations rules that determine the order in which operators in statements are evaluated
文内の演算子を評価する順序を決める、演算順序の規則。
preprocessing
前処理
pre-compilation step in which the source code is manipulated to prepare it for the compilation stage
コンパイル段階に備えてソースコードを加工する、コンパイル前の工程。
preprocessor directive
プリプロセッサー指令
code that describes resources the program needs in order to compile, usually files to insert into the source code
プログラムのコンパイルに必要な資源、通常はソースコードへ挿入するファイルを指定するコード。
primitive data type
基本データ型
(also: basic data type) simplest data type of a language that can usually be represented directly by the hardware memory and registers
基本型ともいう。通常はハードウェアのメモリやレジスターで直接表現できる、その言語で最も単純なデータ型。
procedural language
手続き型言語
allows programmers to group statements into blocks of code within the scope of which variables may be defined and manipulated independently from the rest of a program
プログラマーが文をコードブロックへまとめられる言語。そのブロックのスコープ内では、プログラムの残りの部分とは独立して、変数を定義し、操作できる。
public interface
公開インターフェース
documentation of only what a user needs to access an object, its attributes, and its methods
利用者が、オブジェクトとその属性・メソッドへアクセスするために必要なことだけを記した文書。
pure function
純粋関数
function that will return the same result every time given the same arguments
同じ引数を与えれば、毎回同じ結果を返す関数。
race condition
競合状態
when the condition of a program and its behaviors are not synchronized
プログラムの状態と振る舞いが同期していない状態。
readability
読みやすさ
measures how easily an HLL can be read and understood
高水準言語をどれほど容易に読み、理解できるかを測るもの。
reference variable
参照変数
variable that holds memory addresses
メモリアドレスを保持する変数。
return
return
command that ends a function and/or sends values back to the place at which the function was called
関数を終了させること、または呼び出し元へ値を返すこと、あるいはその両方を行う命令。
runtime error
実行時エラー
exception that is serious enough that it cannot or should not be handled by the software
ソフトウェアで処理できない、または処理すべきでないほど重大な例外。
rvalue
右辺値(rvalue)
right-hand operand in an expression
式の右側のオペランド。
scope
スコープ
defines both the visibility of variables to locations in the code and the physical lifetime of variables
コードの各場所から変数を参照できるかという可視性と、変数が実際に存在する生存期間の両方を定めるもの。
scripting language
スクリプト言語
characterized by placing a list of code statements into a file, referred to as a script
スクリプトと呼ばれるファイルにコード文の並びを入れることを特徴とする言語。
selection
選択
making a decision on which path of execution to follow
どの実行経路を進むかを判断すること。
semantic analysis
意味解析
compilation step that discovers the meaning of the code
コードの意味を見いだす、コンパイルの段階。
sentinel
番兵
expression that sets the condition at the entry or exit of a loop for continued iteration
ループの入口または出口に、繰り返しを続けるための条件を設定する式。
separate compilation
分割コンパイル
situation where pieces of the program can be compiled and independently built
プログラムの各部分を、独立にコンパイルして構築できること。
sequential execution
逐次実行
executing statements in the order in which they appear
文を、現れる順序どおりに実行すること。
server-side script
サーバー側スクリプト
script that runs on a server in a web designer’s domain
Web制作者のドメイン内のサーバーで動くスクリプト。
shared data
共有データ
data available to multiple program locations and/or scopes
プログラムの複数の場所、または複数のスコープ、あるいはその両方から利用できるデータ。
shell scripting
シェルスクリプト
stringing together a group of commands to perform tasks on the user interfaces of various operating systems
さまざまなオペレーティングシステムのユーザーインターフェースで作業をするために、一連のコマンドをつなぎ合わせること。
short circuiting
短絡評価
when HLL expressions that use the logical operators do not need the second operand evaluated for results to be known
論理演算子を使う高水準言語の式で、結果を知るために二つ目のオペランドを評価する必要がない場合の処理。
single inheritance
単一継承
methodology used by most modern OOP HLLs in which classes and objects can only inherit from one parent
現代のOOP高水準言語の多くが使う方式で、クラスやオブジェクトは一つの親からだけ継承できる。
stack frame
スタックフレーム
structure representing a function and its parts that is placed on the call stack
関数とその構成要素を表し、呼び出しスタックへ置かれる構造。
stack overflow
スタックオーバーフロー
condition in which the call stack has run out of memory in which to expand
呼び出しスタックが拡大するためのメモリを使い果たした状態。
starvation
飢餓状態
condition of a process when a process must wait to enter a critical section, but the other processes monopolize the section, and the waiting process does not get processor time
クリティカルセクションに入るためにプロセスが待つ必要があるのに、ほかのプロセスがそこを独占し、待っているプロセスにプロセッサー時間が与えられない状態。
state
状態
data that are remembered over time
時間が経過しても保持されるデータ。
static linker
静的リンカー
produces an executable object file by completing its tasks prior to the program running
プログラムが動く前に作業を終え、実行可能なオブジェクトファイルを作るもの。
string
文字列
data type representing a sequence of characters
文字の並びを表すデータ型。
strongly typed
強い型付け
language in which a variable may only contain one of the language’s defined data types for its entire existence
変数が存在する全期間を通じて、その言語で定義された一つのデータ型の値だけを保持できる言語の性質。
Structured Query Language (SQL)
構造化照会言語(SQL)
most widely used language to specify a query that a database system can process to store or retrieve data
データの保存や取得のために、データベースシステムが処理できる問い合わせを指定する、最も広く使われる言語。
subclass
サブクラス
child class in an inheritance relationship
継承関係における子クラス。
superclass
スーパークラス
parent class in an inheritance relationship
継承関係における親クラス。
syntax analysis
構文解析
front-end compilation process usually referred to as parsing or reading the code to make sure it conforms with the syntax rules of the language
通常はパーシング、または言語の構文規則に従っているかを確かめるためにコードを読むことと呼ばれる、コンパイルのフロントエンドの処理。
ternary operator
三項演算子
acts on three operands
三つのオペランドに作用する演算子。
thread of control
制御スレッド
thread the processor is controlling, which is actually executing at the time
プロセッサーが制御し、その時点で実際に実行しているスレッド。
tokens
トークン
front-end compilation product that are sequences of compiler recognizable atomic symbols which make it much easier for the next steps to recognize them
コンパイルのフロントエンドが生成する、コンパイラーが認識できる基本的な記号の列。後の段階での識別を大幅に容易にする。
top-tested loop
前判定ループ
when a condition for further loop iteration is set at the entrance to the code block
コードブロックの入口に、ループをさらに繰り返すための条件を置いたもの。
truth table
真理値表
chart that shows what the resulting value would be given every combination of values of operands in an expression using a logical operator
論理演算子を使う式で、オペランドの値のすべての組み合わせに対して、結果がどの値になるかを示す表。
type cast
型キャスト
operation that coerces an assignment of a possibly incompatible data type to a variable
互換性がない可能性のあるデータ型の値を、変数へ強制的に代入する操作。
unary operator
単項演算子
acts on one operand
一つのオペランドに作用する演算子。
user interface (UI)
ユーザーインターフェース(UI)
point at which human users interact with a computer, website or application
人間の利用者が、コンピューター、Webサイト、アプリケーションとやり取りする接点。
variable
変数
gives a name to a memory location that is used in any HLL to hold a value
高水準言語で値を保持するために使うメモリ位置へ、名前を与えるもの。
variable declaration
変数宣言
consists of a statement which specifies the variable name and data type
変数名とデータ型を指定する文からなるもの。
void
void
a keyword in many HLLs that denotes a null value stored in a variable or that a function returns no value
多くの高水準言語で、変数に格納されたヌル値、または関数が値を返さないことを示すキーワード。
weakly typed
弱い型付け
when a variable may at different times hold values of any of the language data types
変数が、時によって、その言語のどのデータ型の値でも保持できること。
writability
書きやすさ
measures how easily an HLL can be used to create and modify programs
高水準言語を使って、どれほど容易にプログラムを作成・変更できるかを測るもの。