The algorithm describing the simulation can indeed be "implemented" - thats essentially the proof strategy which the simulator follows.
However, the algorithm implementing the adversary (whom the simulator communicates with) is another story. Since you want the reduction to hold (typically) for any PPT adversary, you do not know how the adversary works.
The reduction simply says that you can nicely give a problem instance to the adversary (without the adversary recognising this, i.e., the simulation is indistinguishable from the real environment from the point of view of the adversary) and then when the adversary halts with a certain output, you solve the respective problem (with a non-negligible probability). However, you do not know how the adversary manages to do this - since there may be different strategies for the adversary. Nevertheless, you do not really care about that, since if your reduction is tight (and the security model is meaningful) you have what you want for proving reductionst security.
Remark: Actually, there are some types of reductions which assume having access to the adversaries internal structure (the code of the adversary). These are non-black box reductions. What one most often encounters in proofs of cryptographic schemes are black box reductions, meaning that the simulator can use the adversary only as a black box without knowledge of the internal workings of the adversary (this is also what I described above).
Another technique which is used in reductionist proofs is rewinding (e.g., in zero knowledge protocols), i.e., the simulator rewinds the adversary to some state when encountering a "bad" state and then starts the adversary from this step again hoping that such a "bad" state will not encounter this time. However, this rewinding techniqe should be used with care.
Sometimes one also encounters that the simulation controls the randomness (random input tape) of the adversary.
Example of a simple reduction (as answer to your comment): Let us suppose the Pedersen commitment scheme working in a group $G$ of prime order $p$. Then we have two generators $g, h$ with $\log_g h$ unknown and the system paramters are $pp=(G,p,g,h)$ (lets write $pp\leftarrow Setup(1^k)$ with $k$ being the security parameter). To commit to a value $m\in Z_p$ one chooses $r\in_R Z_p$ and computes the commitment as $c=g^mh^r$ (lets write this as $(c,d)\leftarrow Commit(m)$, where $d$ is the decomittment value, here $(m,r)$). Opening a commitment is giving away $d=(m,r)$ and checking whether $c\stackrel{?}{=}g^mh^r$ holds (lets write this as $b\leftarrow Open(c,d)$ with $b=true$).
Now, the binding property of a commitment holds if for any PPT adversary $A$ we have that:
$Pr[m\neq m' \land b'=b=true ~~|~~ pp\leftarrow (1^k), (c,d,d')\leftarrow A(pp), b\leftarrow Open(c,d), b'\leftarrow Open(c,d')] \leq negl(k)$
where $negl(\cdot)$ is a negligible function. Essentially, in our Pedersen setting an adversary needs to produce a commitment $c$ such that the opening accepts $(m,r)$ and $(m',r')$ with $m\neq m'$. This, however, means that we have $g^mh^r=g^{m'}h^{r'}$. We will come back to that fact later:
Now we reduce the discrete log problem in $G$ to the binding property of the Pedersen commitment scheme, i.e, if there is an adversary breaking the binding property of Pedersen commitments with non-negligible probability, then we can solve DLP in $G$ with the same probabiltiy. This reduction is very easy, since the simulator has not to simulate any queries (but only to provide parameters to the adversary which are indistinguishable from those in the real attack).
Simulator: Is given an instance $y$ of the discrete logarithm problem in $G$ with respect to generator $g$.
Now the simulator sets $pp=(p,G,g,y)$ and thus embeds the DL instance into the public parameters. Note that for an adversary these parameters are absolutely perfect.
Run the adversary $A$: Now the simulator runs $A(pp)$ and if $A$ manages it to output $(c,d,d')=(c,(m,r),(m',r'))$ with $m\neq m'$, then the reduction applies (note, we do not make any assumption how $A$ manages it produce the output).
Compute solution: Now the simulator has received from $A$ values $(c,(m,r),(m',r'))$ and knows that $c=g^my^r=g^{m'}y^{r'}$ (we have seen this above and come back to that now). This also implies that $r\neq r'$. Furthermore, when taking $\log_g c$ we have $m+r\alpha \equiv m'+r'\alpha \pmod{p}$. This gives when doing a bit arithmetic $\alpha\equiv (m-m')(r'-r) \pmod{p}$. And since the simulator knows $m,m',r',r'$ it can compute $\alpha \in Z_p$. Now, it must hold that $y=g^\alpha$ and the simulator outputs $\alpha$ as solution to the DLP instance $y$.
So what this mean: If there exists an efficient adversary $A$ which is able to break the binding property of the Pedersen commitment with non negligible probability, then we can build a solver to the DLP which uses $A$ as a black box, has the same probability of success and requires a little more runtime (essentially computing $\alpha$ from $m,m',r,r'$).