You are highly recommended to read
Introduction to Programming Languages by Arvind Bansal
This is not the only plausible book to guide you through language
design: there are many others. Obviously the most recent editions are
best, but older editions will still be good for the basic concepts.
Wilson and Clark: Comparative Programming Languages (SC 10 WIL).
This is a very accessible book which covers all the main concepts, and
more, but which hasn't been updated in a while.
Watt: Programming Language Design Concepts (SC 10 WAT).
This is an accessible book which covers all the main concepts, and
Toal, Rivera, Schneider and Choe: Programming Language Explorations.
A language exemplar first approach to programming language concepts.
Good if you prefer to infer the concepts from concrete examples.
Covers 12 languages.
Sebesta: Concepts of Programming Languages (SC 2.1 SEB)
Fernandez: Programming Languages and Operational Semantics. This slim
volume covers language concepts from a semantics point of view. Suitable
for the more mathematical student.
Pratt and Zelkowitz: Programming Languages: Design and Implementation
(This seems not to be in the library any more.)
- Louden and Lambert: Programming Languages: Principles and Practice.
A good book, presenting the material almost in the reverse order to what
is covered in CSCU9Y4. Rather more compiler focussed.
If you have a spare half hour, go to the library and browse the
Computing shelves; there are several books there of historical interest
as well as books on current languages and future trends.
Particularly recommended are:
An essay called "The Hundred Year Language" by Paul Graham, in
Hackers and Painters, SC 8 GRA.