Is there a known method for constructing a grammar given a finite set of finite strings?
This falls within the general topic of "grammar induction"; searching on that phrase will turn up tons of literature.  See, e.g., Inducing a context free grammar, https://en.wikipedia.org/wiki/Grammar_induction, https://cstheory.stackexchange.com/q/27347/5038.

For regular languages (rather than context-free ones), see also Is regex golf NP-Complete?, Smallest DFA that accepts given strings and rejects other given strings, Are there improvements on Dana Angluin&#39;s algorithm for learning regular sets, and https://cstheory.stackexchange.com/q/1854/5038.