“Static” and “Dynamic” refer to the time something is performed, there are many definitions and can be quite vague and different depending on context. In general, Static means “performed before executing” - And this typically means by analysising the source code of the application. Dynamic means “performed at execution”. You need to attach what youre doing, to make your question valid - E.g, The most common discussion/ argument is about Static Typing vs Dynamic Typing. Which is about performing type checking either before execution or during.
Static vs Dynamic? As usual, you need to answer whether you are talking about Type or a kind of code or code structure. Let's look at these one by one. (This was a post on the matter which I originally published on June 2, 2014), and here is the answer for you to choose. Type. We use the term Type and type checking for static types only — For dynamic I use the term “Dynamics” that will be discussed in my upcoming blog post — See paul_hanson in this blog for the details on this discussion. For us, a Static Typed Program is one that has a type, but no code inside it. Dynamic Typed Programs are code without the type, but with a type that is created automatically when the program executes. So which is it? A Static Typed Program is one where the compiler (or the compiler writers) have created their own.