Is there a simple way to characterize the smooth functions without using the derivative? As seen in this question, the derivatives can be easily characterized if we know $C^\infty(\mathbb{R}).$ How can we simply characterize $C^\infty(\mathbb{R})$ if we can't use limits?
 A: Consider data $(V,D)$ with the following properties:
$$\tag1 V\text{ is a subalgebra of }\Bbb R^{\Bbb R}$$
$$\tag2 (\mathbf 1\colon x\mapsto1)\in V$$
$$\tag3 (\operatorname{id}\colon x\mapsto x)\in V$$
As a consequence, the algebra of polynomial functions is a subalgebra of $V$.
$$\tag 4D\text{ is a linear map }V\to V$$
$$\tag 5D(f\cdot g)=D(f)\cdot g+D(g)\cdot f\quad\text{for }f,g\in V$$
$$\tag 6 D(\operatorname{id})=\mathbf 1$$
This introduces the derivative, but in a purely algebraic fashion. Below, we will not need the chain rule for $D$ (and in fact do not even demand that $V$ be closed under composition).
I need a few more conditions to hold that can be viewed as not using limits and even avoid to mention continuity directly, but they introduce enough topological structure to reach the desired goal:
If $a$ and $b$ are real numbers with $a<b$, then with $I:=[a,b]$
$$\tag7f|_I \text{ is bounded}\quad\text{for }f\in V$$
$$\tag8\text{If }D(f)|_I\ge0\text{, then }f|_I\text{is non-decreasing}.$$
It may be possible to weaken these conditions even further, but at least they are good enough to prove the following
Claim. If $(V,D)$ with properties $(1)$ to $(8)$, then $V\subseteq C^\infty(\Bbb R)$ and $D=\frac{\mathrm d}{\mathrm dx}$. In particular, if $(V,D)$ is maximal, then $V=C^\infty(\Bbb R$).
Proof.
Fix $x_0\in\Bbb R$ and $r>0$, and let $I=[x_0-r,x_0+r]$.
By $(7)$, for every $f\in V$, there exists $M$ with $|D(f)(x)|\le M$ for all $x\in I$. Then $D(M\operatorname{id} \pm f)(x)=M\pm D(f)(x)\ge 0$ for all $x\in I$, hence the two functions $M\operatorname{id} \pm f$ are non-decreasing on $I$. Thus for $0\le h\le r$,
$$M(x_0+h)\pm f(x_0+h)\ge Mx_0\pm f(x_0)\ge M(x_0-h)\pm f(x_0-h), $$
i.e.,
$$\tag9 |f(x)-f(x_0)|\le M|x-x_0|$$
for all $x\in I$. It follows that $f$ is continuous at $x_0$.
Let $g=f-D(f)(x_0)\operatorname{id}$. This makes $D(g)=D(f)-D(f)(x_0)\mathbf 1$ and in particular $D(g)(x_0)=0$.
Apply $(9)$ to $D(g)$ to obtain (with a different constant $M'$)
$$ |D(g)(x)|\le M'|x-x_0|$$
for $|x-x_0|\le r$.
Hence when applying $(9)$ to $g$ with $0<r'\le r$, we can use $M=M'r'$. As long as $0<|x-x_0|\le r$, we may set $r'=|x-x_0|$ and arrive at
$$g(x)-g(x_0)\le M'|x-x_0|^2. $$
This implies $g'(x_0)=0$, so $f'(x_0)=D(f)(x_0)$. As $x_0$ was arbitrary, ultimately $f'=D(f)$, as desired. $\square$
