component
Java programming language
object-oriented compiler construction
programming languages concepts
software reuse