Did you try running any of the code to see if you get error messages?
Where to initial values for A and B come from in the first data step?
Similar in the second plus the LABEL statement is not conditional and depending on what was intended there could be several logic errors other than the syntax issues assignment and such.
Regardless the fact that you didn't initialized variables, as @ballardw pointed out, reasons seems to be as follows:
a) - double semicolon after "if-then" part - it should be 1 (one) semicolon there, with two(;;) sas thinks that you have an empty statement there (second semicolon) and it throws an syntax error on the "else" part
b) - as @ballardw pointed out, Label is not execution time statement but compilation time one. Try to test following code (which from the execution time point of view reduces to "empty" do-end block):
data _null_;
if a >= b then do; label dob="date of birth"; end;
else do; label dob="date of death"; end;
run;
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!