Quantum Simulation and Quantum Information Processing with Programmable Rydberg Atom Arrays