私はこれが一般的な質問であることを知っています。
私はコンパイラをプログラムしようとしていますが、ファイルの読み取り中に言語のトークンを取得する方が良いか (つまり、最初にファイルを開き、読み取り中にトークンを抽出し、最後にファイルを閉じる)、ファイルを読み取る方が良いかどうか疑問に思っていました。まず、それを閉じてから、変数のデータを操作します。この擬似コードは次のようになります。
file = open(filename);
textVariable = read(file);
close(file);
getTokens(textVariable);
最初のオプションは次のようになります。
file = open(filename);
readWhileGeneratingTokens(file);
close(file);
メインメモリに関して追加コストがないため、最初のオプションの方が良さそうです。ただし、ファイルを開く時間を最小限に抑えるため、2 番目のオプションを使用するといくつかの利点があると思います。