What does ‘predicate’ mean in the context of computer science? [duplicate]

A predicate (‘PRED-i-cat’) is the part of a sentence that contains the verb and tells you something about the subject. For instance, in the sentence “Mike is eating”, we have the subject, ‘Mike’, and the predicate, ‘is eating’. In the context of computer science, we aren’t interested in stating a fact, but rather, in testing … Read more

Does “untyped” also mean “dynamically typed” in the academic CS world?

Yes, this is standard practice in academic literature. To understand it, it helps to know that the notion of “type” was invented in the 1930s, in the context of lambda calculus (in fact, even earlier, in the context of set theory). Since then, a whole branch of computational logic has emerged that is known as … Read more

What does the quote “An extra level of indirection solves every problem” mean? [closed]

Generally it means that by increasing the level of abstraction one can make the problem easier to understand/resolve. Be careful with your abstractions though, the full quote at least as I heard it is, “You can solve every problem with another level of indirection, except for the problem of too many levels of indirection”.

What is the ‘expression problem’?

Watch this lecture. The idea is that your program is a combination of a datatype and operations over it. The problem asks for an implementation that allows to add new cases of the type and new operations without the need for recompilation of the old modules and keeping static type safety(no casts or runtime type … Read more