The theory, development and application of a computer program to balance the combined effects of the shaking force, shaking moment, input torque and individual bearing forces in four bar linkages is presented. The theory assumes the linkage to consist of rigid bodies, and is limited to balancing planar four bar linkages other than sliders. Balancing is accomplished using circular counterweights which are tangentially attached to the bearing joints. Counterweight sizes and locations are determined using nonlinear programming techniques where an objective function, dependent upon all the kinetic parameters, is minimized. The balancing program is capable of performing diverse functions. The number of added counterweights, type and degree of numerical quadrature and regional constraints on all important balancing parameters can be varied. In addition, the program is capable of balancing linkages with offline mass distributions, and to some extent, emphasis can be placed on individual terms such as the input torque. A major limitation of the theory is the assumption of rigid links. This may not always be valid and makes the program insensitive to natural frequencies, where the amount of vibration would be excessiveExample problems are presented to show the capabilities and application of the balancing program. The first example shows the effect of varying the degree and type of numerical integration used. The Gaussian quadrature method is shown to be most efficient, with the optimum number of sampling points determined to be 10. In example two, an inline four bar linkage operating at a constant input speed of 5000 rpm is balanced so that all kinetic quantities are reduced from 75% to 92% over the unbalanced case. Similar results are shown in example three for balancing a four bar linkage with an offline coupler mass distribution. The effect of adding from one to three counterweights is also investigated, with the results indicating that additional counterweights do not always improve the balancing situation. With just one counterweight added, the important kinetic terms are reduced an average of 87%, while the addition of three counterweights only reduces these same quantities an additional 5%. Due to the apparent success of the developed program, the author recommends that it be extended to sliders, six bars and other practical linkages. In addition, the validity of the rigid body assumption should be experimentally and theoretically investigated