PREDA is a distributed, functional, scope-oriented and high-level programming language for developing inherently-parallelized smart contracts on sharded blockchains with Solidity compatibility and interoperability. Based on an innovative distributed programming model with functional relay semantics and programmable sharding schemes, the PREDA language is devoted to scaling out blockchains that support general smart contracts independent of sharding architectures and consensus algorithms. Unlike other sharding protocols, such as the NEAR protocol, where a smart contract can only be deployed and executed on one shard, PREDA is the only protocol where any contract can be running on all shards. This is execution sharding.