The AND array is programmable while the OR array is relatively fixed. A switch matrix selects which of the PALs inputs will be connected to the AND inputs which are then connect to the fixed OR matrix. The outputs can often times be rerouted to the input matrixes. The 22V10 became a commonly used PAL device. Today's CPLDs can get quite large.
Many companies produce CPLDs.
Inside the macro cell are often switches or multiplexers which allow for differing uses of the macro cell. The internal make up of the FPGAs can also be categorized by the technology implementation used. Fuses are permanently put in place. The obvious disadvantage is reuse, while the advantage often comes in size and cost. Static Ram based - SRAM cells are implemented as function generators to simulate combinatorial logic and also are used to control muxs and routing resources.