Grid computing provides a platform for users to access the worldwide distributed resources. To meet the timing and quality requirements imposed by the tasks running on the grid, the resources required by the tasks needs to be carefully scheduled. In the last decade, a lot of scheduling algorithms have been proposed to squeeze the computing power from a grid. However, many of them do not consider the message-sending order imposed by the programming syntax or do not employ the information provided by the scheduled subtasks. In this paper, two scheduling algorithms COB and DDR which take the useful information into consideration are proposed. The COB schedules tasks according to the communication restriction imposed by the programming syntax. The DDR schedules tasks by incrementally computing the rank values of the subtasks based on the information provided by the scheduled subtasks. In this paper, the usefulness and effectiveness are demonstrated by comparing our algorithms with the well known scheduling algorithms HEFT and CPOP.