artistic language computer computer science constructed language engineered language esperanto formal language grammar international auxiliary language knowledge representation language lojban markup language mathematical logic natural language programming language quenya second language semantics syntax wiktionary