MIT 6.00 Intro Computer Science (OCW)
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
The key here is in the difference between syntax and semantics, but don't get hung up on these issues too much, it's pretty intuitive as you go along. Most people can speak English without knowing these things. Semantics is the meaning of the elements of a language. The expression, 5 + 10, means, take the number five and add the number ten to it. Syntax refers to the rules of how things should be done in the language. With 5 + 10, you have rules. For example, the operator, the + sign, must be between the operands, the 5 and the 10. You can not do + 10 5. You can not do 5 10 +, because it breaks the rules. It's pretty obvious stuff, but it is important when working in a programming language. In English you can break rules and call yourself eccentric, with a programming language, the computer will just crash. When you here people say syntax, they generally just mean the way you write stuff. When they talk about the semantics, they are on about what the stuff your writing means. I'd be happy to try and elaborate a bit if you needed more.
Thank you for answering my question. To make it more clearly, what's the different static semantic and full semantic ?
To be honest, I don't think he means for you to make too much of a distinction between the two. Quote ''' Second thing we want to talk about very briefly as we go along is the semantics of the language. And here we're going to break out two pieces; static semantics and full semantics. Static semantics basically says which programs are meaningful. Which expressions make sense. Here's an English sentence. It's syntactically correct. Right? Noun phrase, verb, noun phrase. I'm not certain it's meaningful, unless you are in the habit of giving your furniture personal names. What's the point? Again, you can have things that are syntactically legal but not semantically meaningful, and static semantics is going to be a way of helping us decide what expressions, what pieces of code, actually have real meaning to it. All right? The last piece of it is, in addition to having static semantics, we have sort of full semantics. Which is, what does the program mean? Or, said a different way, what's going to happen when I run it? That's the meaning of the expression. That's what you want. All right? You want to know, what's the meaning of this piece of code? When I run it, what's going to happen? That's what I want to build. ''' End Quote I think he's just saying, you have semantics ~ what does each bit of code mean ~ and then... we have, sort of, 'full' semantics ...what does our program do. I don't think he meant to make the two distinct, he just meant that you should look at how the program's meaning is the total of the meaning of it's parts. I might be wrong, but I think that's what he meant.
I'd be interested to know if any one interprets it differently. That's just what I got from what he was saying.