算法不是程序,但算法是编写程序的基础。算法是解决问题的步骤和方法的描述,是一个抽象的概念,独立于具体的编程语言和硬件平台。而程序是使用特定编程语言编写的一段代码,是算法的具体实现。算法的步骤是有限的,而程序可以无限地执行下去。算法和程序的联系在于,程序是通过将算法用具体的语法和语义转化为计算机可以执行的指令来实现的。因此,算法是程序的基础和前提,但算法本身并不等同于程序。