Suppose we have a compact $m$-dimensional submanifold $M$ of $\mathbb{R}^N$ and we want to know the cohomology ring $H^*(M;\mathbb{Z})$.
Let $\epsilon>0$ and a $m$-dimensional finite simplicial complex $K$ be a trangulation of $M$ such that all the simplices of $K$ have diameters less than $\epsilon$. Then since $M$ is compact, there exists $\epsilon_0>0$ such that for any $\epsilon<\epsilon_0$, $$ H^*(K;\mathbb{Z})=H^*(M;\mathbb{Z}). $$ There is a standard algorithm to compute $H^*(K;\mathbb{Z})$. Hence we have an algorithm to compute $H^*(M;\mathbb{Z})$.
Question: are there any software / programming that can give the cohomology ring $H^*(M)$ automatically for any compact submanifold of Euclidean spaces, given by finitely many equations of coordinates?