Seol mar théacs é seo: Theories of Programming: Top−Down and Bottom−Up and Meeting in the Middle