An anticausal system is one particular type of non-causal system.
Causal means that the output at time t can be computed without any knowledge of the input at times >t. Non-causal just means not-causal, i.e. you must know some inputs with time >t in order to compute the output at time t.
Anticausal means that the output at time t can be computed by knowing the inputs at time >= t, but without any knowledge of the inputs at time
If you're dealing with the system as a whole, it is noncausal, but is not anticausal (because sometimes past states help determine current outputs). If you are dealing with the system only during certain time periods, though, it can be causal or anticausal. Specifically:
* For t 1, the current output is a fuction of future states. The function is anticausal for this time range.
(minor detail: Some definitions of anticausal allow for the current state to be used in addition to future states, see https://en.wikipedia.org/wiki/Anticausal)
All natural systems are casual because the current output can only depend on past and present outputs and inputs.
Synthetic systems (ie analog or digital machines made by us) must also be causal, in this sense, because we cannot see into the future, only the past.
However, in discrete-time (ie digital) systems we can create the illusion of non-causality by processing blocks or batches of data that we have extracted from a causal stream.
In this extracted block, we are free to look forwards and backwards in time as we wish!
This is of course a big advantage and this is why we need to understand this troubling concept in linear signals and systems theory.
It really only becomes an issue if you want to work with IIR filters.
For FIR filters, it is no big deal and it is easy to avoid if you choose.
All natural systems are causal systems because they depend only on present and past values but electronic systems with memory can depend on future values these systems are known as non causal systems.