Erlang 面接の質問と回答トップ 22 (2025)
ここでは、夢の仕事に就くための新人および経験豊富な候補者向けの Erlang 面接の質問と回答を紹介します。
1) Erlang とは何ですか?
Erlang は汎用プログラミング言語およびランタイム環境です。 同時実行性、耐障害性、分散のサポートが組み込まれています。 Erlang はオープンソースとして入手できます。
無料 PDF ダウンロード: Erlang インタビューの質問と回答
2) OTP (Open Telecom Platform) とは何ですか?
OTP はオープン ソース プラットフォームであり、ASN.1 のコンパイルから WWW サーバーの提供までのすべてを行う Erlang 用の大規模なライブラリ セットです。
3) Erlang の主な機能は何ですか?
Erlang の主な機能は次のとおりです。
- 宣言構文: 宣言構文を持っています
- 同時: プロセスベースの同時実行モデルを備えています
- リアルタイム: リアルタイムシステムをプログラミングします
- 連続運転: 連続運転が可能になります
- 壮健: ランタイムエラーを検出するために、言語には XNUMX つの構成要素があります。
- メモリ管理: メモリは自動的に割り当てられ、不要になった場合には割り当てが解除されます。
- ディストリビューション: 共有メモリがなく、分散システムはアーランで簡単に構築できます
- 統合: 他の言語で書かれたプログラムを簡単に統合
4) erlang が提供するデータ型に名前を付けますか?
Erlang は XNUMX つのデータ型を提供します
- 定数データ型: これらのタイプのデータ型は、よりプリミティブなサブタイプに分割できません。 それは数値とアトムで構成されます。
- 複合データ型: これらのデータ型は、他のデータ型をグループ化するために使用されます。 タプルとリストで構成されます。
5) Erlang でノードを切断するコマンドは何ですか?
erlang:disconnect_node (Node) を呼び出すと、ノードが強制的に切断されます。
6) Erlang のモジュールとは何なのか説明してください。
Erlang を使用すると、コードをモジュールに編成できます。 モジュールは関数で構成されます。 これにより、関数のローカル スコープ (パブリックおよびプライベート) が導入されます。
7) Erlang でモジュールがどのように保存されるかについて言及しますか?
モジュール名は .erl という名前のファイルに保存されます。 ファイルのベース名とモジュール名は同じである必要があります。
8) Erlang のビット文字列とは何ですか?
型指定されていないメモリ領域を格納するには、ビット文字列が使用され、ビット構文を使用して表現されます。
9) パターン マッチングとは何ですか?
パターン マッチングは、関数呼び出しを評価するときに発生します。 パターン マッチング メカニズムを通じて、変数は値にバインドされます。
10) PID データ型とは何ですか?
PID はプロセス識別子を意味し、すべてのプロセスに割り当てられる一意のプロセス識別子に使用されるデータ型です。
11) Erlang にファイルをインクルードするには、どのようなコマンドを使用しますか?
XNUMX つの方法でファイルを Erlang に含めることができます
- (ファイル)を含めます。
- include_lib (ファイル)。
12) Erlang では実行時エラーはどのように処理されますか?
Catch または Try を使用すると、実行時エラーやその他の例外によってプロセスが終了するのを防ぐことができます。 Catch Expr は、評価中に例外が発生しない限り、expression の値を返します。 Try Exprs は、例外クラスを識別し、必要な例外クラスの処理を選択する機能を備えた catch の機能強化です。
13) Erlang では「プロセス」はどのように作成されますか?
プロセスは spawn を呼び出すことによって作成され、spawn は新しいプロセスを形成して pid を返します。
- Spawn (モジュール、名前、引数) -> pid ()
14) ガード シーケンスを定義します。有効なガード式は何ですか?
Erlang 関数句はガードで保護できます。 条項はガードが保持されている場合にのみ保護できます。 これはセミコロン (;) で区切られた一連のガードであり、ガードはコンマ (,) で区切られた一連のガード式です。 少なくとも XNUMX つのガードが true の場合、ガード シーケンスは true になります。
15) 有効なガード式のリストを教えてください。
有効なガード式は次のとおりです。
- アトムは本当です、
- その他の定数
- 指定された BIF への呼び出し
- 用語の比較
- 算術式
- ブール式
- 短絡表現
16) Erlang でメッセージがどのように送受信されるのか説明してください。
メッセージを送信する場合、Erlang はメッセージ送信の演算子として感嘆符 (!) を使用します。 メッセージの送信に使用される構文は Pid ! メッセージ。 メッセージの受信には、Erlang はパターン マッチングを使用し、メッセージ キューからメッセージを配信するには、receive ステートメントを使用します。
17) Spawn/ 1l3 と Spawn_link 1l3 とは何ですか?
Spawn/ 1l3: 新しいプロセスを作成し、その pid を返します。 システム スケジューラ キューに、新しいプロセスが配置され、しばらくしてから実行されます。 Spawn_link/1l3: spawn/1l3 と同じ機能を提供しますが、新しく生成されたプロセスと呼び出し元の間にアトミックに作成されるリンクが追加されています。
18) Erlang でマクロを記述するための構文について言及してください。
Erlang でマクロを記述するために使用される構文は次のとおりです。
define ( Const, Replacement ).
define ( Fun ( Var1 , Var2, …., Var ) , Replacement )
19) Erlang で事前定義されたマクロをリストアップしますか?
Erlang の事前定義マクロは次のとおりです。
- モジュール: 現在のモジュールの名前を返します
- モジュール文字列: 現在のモジュールの名前を文字列として返します。
- ファイル: 現在のファイル名を返します
- ライン: 現在の行番号を返します
- 機械: 現在のマシン名「BEAM」を返します。
20) レコードとは何か、また Erlang でレコードを定義する方法を説明しますか?
固定数の要素を格納するには、 データ構造 レコードと呼ばれるものが使用されます。 式は、コンパイル記録中にタプル式に変換されます。 Erlang のレコードは、レコード名とそれに続くレコードのフィールド名によって定義されます。 レコード名とフィールド名はアトムである必要があります。
record (Name, { Field1 [= Value] , … FieldN [= ValueN] } )
21) Erlang のレコード フィールドにアクセスするために使用されるコマンドは何ですか?
Expr#Name.Field の場合、このコマンドは指定されたフィールドの値を返しますが、指定されたフィールドの位置を返すには #Name.Field が使用されます。
22) epmd とは何ですか?
epmd は、分散 Erlang 通信を確立するときに Erlang プログラムによって使用される小規模なネーム サーバーです。 Erlang ポート マッパー デーモンとも呼ばれます。 これは、シンボリック ノード名を、使用されるマシン アドレスにマッピングする役割を果たします。
これらの面接の質問は、あなたの活力(口頭)にも役立ちます