Actually the comments about Pascal by Mr. Eng are an oversimplification. In Pascal you can actually create some fairly fine-grained Objects called Records. Records can be any data type available in Pascal, which are quite rich. Records can be abstracted to a certain extent by declaring a “Type” of that Record, and then later you essentially instantiate the variable/date item of that Type as an actual variable. The fields in a Record are not hidden per se as in a modern OOP language, but to a certain extent they are because you have to explicitly reference the root name of the Record variable instantiated to access individual fields. Also note that traditional Pascal has strong Typing and user-created types, so you really have to go out of your way to accidentally access a variable that you didn’t intend to access; thus variables in Pascal are to a certain extent protected from mistakes, and thus kind of hidden.