C-style languages tend to have squiggly brackets which can limit scope somewhat, but not as totally as you describe.
For example:
doThing(){
x = 7; //x visible in whole function
{
y = x*2; //y only visible in this block.
}
// x still visible, y no longer visible
}
Explicitly removing things from scope doesn't seem to be a feature though.