So, I'm not a computational linguist, so I can't help you in regards to how to implement a SCF into code or something like that. But in syntactic theory more broadly, a SCF is one way of expressing the complementary elements that a verb "needs" in order to be "correct". So, to use your example of "eat":
eat [NP _ NP]
The underscore (_) is a placeholder for our verb, and the two noun phrases (NPs) on both side represent a subject and object, respectively. The expression "eat [NP_NP]" is just a shorthand way of writing, "the verb eat must have a subject and an object". Compare that to a verb like "fall":
fall [NP _ ]
This notation tells us, "the verb fall requires a subject in order to be correct, but NOT an object". You can say "the apple is falling", but not "the apple is falling the orange". A SCF is just a shorthand way of representing the arguments demanded by a certain verb.
SCFs are useful because they're easy to represent in a formulaic fashion. But they often struggle to represent complexities of actual use. For example, I can't "sit a bus" but I can "sit an exam", so what would the SCF of the verb "sit" look like? And even with a verb like fall which in most circumstances can't take a direct object, I can still say, "he fell a great distance". Or "jump", I can't "jump an apple" but I can "jump the queue".
That basic notation of "eat [NP _ NP]" comes from Chomsky back in the 1960s, when syntax was just getting off its feet. Certain modern theories (and not just Chomskian ones) rely on much more complicated kinds of SCFs which are more capable of handling more complicated data, including things like theta-roles, lexical case, unergativity/unaccusativity, lexicalization, polysemy, and so on. Even still, the rigidity and formulaic nature of SCFs always make it a struggle to square them against actual use. So, when it comes to theory, I prefer to think of SCFs as a convenient shorthand for an amalgamation of complex, flexible mental processes, instead of as representations of something actually "real" going on during language production.
Again, I'm not sure how SCFs are used in computational linguistics, but that's the quick version of what they represent in more general syntactic theory. I hope this was a little useful! A computational linguist's take on SCFs is of course going to be more practically valuable.