# Programs to circuit conversion

Suppose we have an algorithm for a decision problem with $$n$$ bit inputs that runs in $$DTIME[f(n)]$$ is there ways to convert to circuits of $$O(f(n))$$ size with AND, OR and NOT gates?

How about when we go from circuits to programs?

The Cook–Levin theorem shows how to construct a circuit of size $$f(n)^{O(1)}$$. I'm not sure what's the best exponent.
The opposite direction is impossible, since circuits of size 1 can compute the following language: $$\{ w : \text{the |w|th Turing machine halts on the empty input} \}.$$ More generally, circuits of size 1 can compute any language in which the answer depends only on the length of the input.