From what I understand, a lexer that parses a language (e.g., C) is essentially a state machine that builds a list of tokens (essentially pointers) it finds in the source code. Has anyone ever considered whether or not this problem maps well to FPGA architectures?
Yes, it would work well. FPGAs contain wide, fast memories that make it easy to implement a state machine that could process one input symbol per clock.
But the question remains, does it make sense to do this in the context of the other things that need to happen when processing languages? CPUs with high speed clocks also execute table-driven state machines very efficiently, and they provide a better environment for implementing the higher-level parsing tasks.