Partial Evaluation, Programming Methodology, and Artificial Intelligence