In this paper, we present FProlog, a programming language designed to act as the top level in a robot assembly system. FProlog is a logic programming language, with the ability to interface with LISP. This allows the use of a logic programming environment to construct assembly plans, while using LISP programs to interface with vision systems, world modeling systems, robot manipulators, etc. FProlog differs from hybrid logic programming languages, such as LOGLISP, in that FProlog may invoke functional programs as goals, and functional programs may invoke FProlog's inference engine. Also, FProlog differs from traditional robot assembly languages, such as AUTOPASS, in its generality, and therefore its ability to interface with many different subsystems. As a demonstration of the applicability of FProlog, we also present an FProlog program which is used as the top level in a robot assembly system which performs a version of the blocks world experiment.