Final answer:
In programming, defining what a program will do involves creating an algorithm and a flowchart; syntax and compilers are not involved in this phase.
Step-by-step explanation:
In the context of programming, when we talk about defining what the program is to do, we refer to the planning and design phase before the actual coding begins. This includes creating an algorithm, which is a step-by-step procedure or formula for solving a problem and designing a flowchart, which is a diagram that represents the sequence of operations to be performed to get to the solution. However, syntax, which refers to the rules and structure of a programming language that allows the computer to understand and execute commands, is not involved in defining what the program is to do. The compiler is the tool that translates the written code from high-level programming language to machine language, but it is also not related to the definition phase of the program. Therefore, options 3) Syntax and 4) Compiler are not involved in defining what the program is to do.