Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I replied to you above, but I'll reply to your specific example here. Your example is really not how PL people talk about type inference. However, you're right that you wouldn't call this example type-checking either... it would probably be a fuzzier term such as "reflection" or "introspection". But certainly not type inference. Do you understand what the wikipedia article you linked is about? Because it's NOT about introspecting the type of a contained object within a container. It's about statically making proofs of the type of a variable based on its usage.


Sorry, but people use the term this way: http://www.google.com/search?hl=en&client=firefox-a&...


A quick read of this page and its top link strongly suggest that runtime type inference is an optimization designed to speed up the interpretation of dynamically typed programs. It sounds very useful for JIT compilation (to make appropriate code specializations). It's also likely too complex to be implemented in simple interpreters (like Lua's).

Note that this term isn't very widely used: we are already in second position at your link.

So, unlike ML-style compile-time type inference, runtime type inference is implementation specific. Your earlier statement "Scripting languages have run-time type-inference built in everywhere" is actually ill-typed. However, if you had said "checking" instead of "inference", your sentence would have been correct.

Hence my "Err, by "runtime type inference", you actually mean runtime type checking, right?"


Type checking is what you say when the compiler makes sure that you've used all your types correctly, and spits out an error when you don't. It's there to prevent you from trying to assign an int to a string, for example.

"Runtime type checking" is the same thing at runtime. Errors and exceptions get thrown, your program stops. So no, that's not what we're talking about.

Here is a description of type checking: http://en.wikipedia.org/wiki/Type_system#Type_checking




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: