A model in which the objective function and all of the constraints (other than integer constraints) are linear functions of the decision variables is called a linear programming (LP) problem. (The term “programming” dates from the 1940s and the discipline of “planning and programming” where these solution methods were first used; it has nothing to do with computer programming.) As noted earlier, a linear programming problem is always convex.
If the problem includes integer constraints, it is called an integer linear programming problem. A linear programming problem with some “regular” (continuous) decision variables, and some variables that are constrained to integer values, is called a mixed-integer programming (MIP) problem. Integer constraints are non-convex, and they make the problem far more difficult to solve; see below for details.
A quadratic programming (QP) problem is a generalization of a linear programming problem. Its objective is a convex quadratic function of the decision variables, and all of its constraints must be linear functions of the variables. A problem with linear and convex quadratic constraints, and a linear or convex quadratic objective, is called a quadratically constrained (QCP) problem.
A model in which the objective function and all of the constraints (other than integer constraints) are smooth nonlinear functions of the decision variables is called a nonlinear programming (NLP) or nonlinear optimization problem. If the problem includes integer constraints, it is called an integer nonlinear programming problem. A model in which the objective or any of the constraints are non-smooth functions of the variables is called a non-smooth optimization (NSP) problem.