In a medium saucepan, whisk together sugar, cornstarch, and salt.
Gradually whisk in the milk until smooth.
Cook over medium heat, stirring constantly, until the mixture thickens and starts to boil.
Boil for 1 minute while stirring constantly, then remove from heat.
Slowly whisk about 1 cup of the hot mixture into the egg yolks to temper.
Return the egg mixture to the saucepan and bring back to a gentle boil, stirring.
Boil and stir for 1 minute, then remove from heat.
Stir in butter and vanilla extract until smooth.
Pour pudding into individual serving dishes and cover with plastic wrap pressed directly on the surface.
Chill in the refrigerator for at least 2 hours before serving.