low-level vs high-level language comparison