Is there any kind of CPU which doesn't contain an ALU ?
If the CPU (Central Processing Unit) does any processing, it will do either Arithmetic or Logic operations... in a sense, some form of ALU is the core of the CPU.
A CPU is not a microprocessor. So if you look at early mechanical computers such as Konrad Zuse's Z3 and Charles Babbage's mechanical computer, those were computers with a CPU that was not a microprocessor and did not have an ALU.
John von Neumann proposed the ALU concept in 1945, there were functional computers before that e.g. Zuse's Z3 that did not have an ALU.
If you want to look more closely at a spec design for a modern FPGA ALU design, please have a look at my ALU (done in Quartus), that is built from primitives.
Yes! See the Wikipedia page for Turing Machine. A Turing Machine is a state machine with a pointer that can move left or right on an "infinite" tape (representing memory.) There is a picture on the Wikipedia page of a Turing machine implemented with Lego. The foundation of Computability Theory is the Church-Turing Thesis, which states that a Turing Machine is as capable as any other computer. You can simulate a computer with an ALU on a Turing Machine if you want to.
If you are worried that the operations of moving left and right on a tape might be too similar to increment and decrement operations that an ALU might do, then see http://esolangs.org/wiki/BitBitJump. They show how you can implement a universal turing machine with a machine that does nothing but bit copies (which are doing a form of self-modifying code.)
ALU-less computers are certainly possible.
The 1 Square Inch TTL CPU project on hackaday.io by roelh is able to circumvent the need for an ALU using lookup tables! Furthermore, the project also says the HP9100 calculator uses a similar technique.
THERE IS NO ALU
NO ALU... I could have programmed a small PIC or AVR as ALU (Wikipedia: ALU), but that's cheating. With the current microcode version, the only arithmetic that it can do is compare bytes and address items in a table. And the hardware won't allow much more.
For incrementing or decrementing a byte, lookup-tables are set up that contain an incremented or decremented version of the lower 8 address bits. Now the processor can increment or decrement a byte. Nothing more is needed to do arithmetic !
This was also done in the legendary HP9100 programmable calculator that was introduced in 1968. It worked with transistors and diodes, not a single digital IC ! The story behind this calculator is amazing, and can be read on hp9825.com. People have tried to reverse-engineer the diode-transistor logic and came to the conclusion that the hardware of the machine could only increment or decrement digits (described by Tony Duell). Yet it could calculate with high-precision floating point numbers, including logarithms and trigonometry, at high speed. More info about the HP9100 can be found in the HP journal 1968-09.
Superscalar processors have several execution units which often are not equivalent. I'd not be surprised if there has been some design where the repartition of responsibilities between the execution units was such that none of them would merit the name ALU for some definitions of the term.