Traditionally, the usual definition you find for model of computation is "an abstract description of how an output is computed given an input" (Wikipedia and my TCS course are my sources, but the other websites I've seen seem to agree). To me, this seems really close to the informal notion of algorithm, which is "a step by step description on how to calculate something". Furthermore, a function is called calculable if we can give an algorithm for it.
What is the relationship between this two concepts? For what I've seen, computational models such as Turing Machines or Lambda calculus are just formalisms to write algorithms within a particular syntax and semantics. For instance, a Turing machine specifies how to describe steps (n-uples) and gives a semantic of how this algorithm is interpreted. Similarly the lambda calculus specifies the syntax and the interpretation of calculus.
So, are models of computation syntactic/semantic rules for the formalization of algorithms? Why/why not? At this point, what's the difference between model of computation and programming language? Thank you for your replies.