Bridging the Gap between Machine and Language using First-Class Building Blocks