自動スタイルのプログラム-翻訳の難しさ





SkyDNSAydekoによるコース「UNIXでのネットワークプログラミング」の5回目の講義は、すでにリスナーを待っています。



Alexander Patrakovは、通常のネットワークプログラムをステートマシンに基づいたプログラムに変換する方法を説明します。



ステートマシンがhabrakatの下にあるものについて学習します。



以下を理解するには、この講義を聞く必要があります。 秘密を開いてみましょう。次の講義のトピックはselect()関数です。これはほとんどの場合、オートマトンなしでは使用できません。 コース開発者のAlexander Patrakovは、両方のトピックは非常に複雑であるため、1回の講義でselect()とステートマシンについて話すべきではないと説明しました。



ステートマシンは、数学者によって一連の状態、一連の入力シンボル、および遷移表として定義されます。 一方、プログラマーは、この式を厳密な数学的な意味で使用するのではなく、それぞれが入力データを熟考し、次のピースを決定するプログラムをピースに分割する方法の名前として使用します。



Alexanderは、オートマトンの状態間の遷移のハンドラーには、resv()またはsend()関数の1回の呼び出しを除いて、ネットワーク入出力操作を含めるべきではないと強調しています。 最初から呼び出す必要があります。 これは、最後の講義で説明したソケットからの読み取りのサイクルを自動プログラムで使用しないことを意味します。 アレクサンダー・パトラコフとマーク・コレンバーグが話しているように、ビデオの34分から始めて、マシンはこのタスク自体を処理できます。



この講義では、生徒にステートマシンを使用するために占星術サーバーを作り直すタスクが与えられました。



「このトピックは、コース全体で最も難しいものの1つであり、ほとんどの学生がそれに対処したことを認めなければなりません」とAlexander Patrakov氏は言います。 -もう1つの重要な点に注意してください。select()なしでステートマシンを使用することは、人為的なタスクです。 実際のプログラムでは、select()なしでステートマシンを使用することは一般的に非実用的であり、コードを混乱させるだけです。



そして、あなたは混乱することはできませんか? ビデオには、教材の学習に役立つスライドが再び表示されているので、できると確信しています。



ところで、アレクサンダー・パトラコフは、講義を見た後、理解できなかったものを喜んで説明します。 コメントに質問を残してください。 また、この講義の面白さと、追加する価値があるものを教えてください。 あなたの意見は私たちにとって重要です!







以前の講義:

1. UNIXとCを恐れない人のためのコース

2. プロセス内の各クライアントへ

3. プロトコルまたは占星術師の仕組み実装します

4. 最後まで読む方法



All Articles