Автор Брайан У. Керниган Алан А. А. Донован